2012-06-04 3 views
0

PHP는 HTTP-Authentication을 사용할 수 있습니다..htpasswd 파일로 HTTP 인증

그러나 .htpasswd-files를 사용하는 것은 어렵습니다.

PHP 내에서 .htpasswd 파일을 검사하는 스크립트가 있습니다 (예 : this one). 그러나이 스크립트는 매우 복잡하며 대부분의 관련 암호화 유형 (예 : htpasswd에서 사용되는 기본값 인 MD5)을 지원하지 않습니다.

표준 .htaccess 파일을 사용하면 훨씬 쉽습니다 (단지 AuthUserFile <.htpasswd-file> 필요).

그러나 명시적인 .htaccess 파일을 피하고 대신 php를 사용하고 싶습니다.

쉽게 PHP를 사용하여 .htpasswd 파일을 확인하는 방법은 있습니까? 액세스가 허용되어야하는 경우 PHP가 아파치에 "묻을 수 있습니까?"

답변

2

나는 사용자를 인증하는 아파치를 요청하는 직접적인 방법이 있다는 것을 의심하지 않지만, 몇 가지 해결 방법은 거기에 있습니다 APR1-MD5, 해시를 생성하는 shell_exec("htpasswd -nb $user $password")SHA

  • 사용 :

    1. 자신에 대한 algos 누락 구현 .htpasswd 파일을 체크인하고 .htpasswd 파일을 체크 인하십시오.
    2. 인증을 위해 .htpasswd 파일을 사용하는 내부 서버에 가상 서버를 설정하고 응답 헤더 (인증 된 경우 200, 인증되지 않은 경우 4xx)를 확인하십시오.
  • +0

    나는 정말 그렇게 쉬운 방법이 없다. 어쩌면 (2) 해결책이다. 고맙습니다! – speendo

    +1

    shell_exec를 사용하려면 명령을 실행하기 전에 사용자 입력을 확인/이스케이프해야합니다. PHP 전용 인증으로 인해 이미지, 자바 스크립트, 일반 HTML 파일 등의 정적 컨텐츠에 액세스하는 것을 막을 수는 없습니다. –

    +0

    shell_exec ("htpasswd -nbm $ user $ password"); –