보안 로그인을 작성하는 PHP 기술을 신뢰하지 않기 때문에 .htaccess를 사용하여 필자가 작성중인 PHP 스크립트의 디렉토리를 비밀번호로 보호하려고했으나 발견했습니다. AuthUserFile에 대한 상대 경로를 사용할 수 없으며이를 일반화 할 수 없습니다..htaccess없이 보안 디렉토리 비밀번호 보호
암호로 보호 된 PHP 보안 로그인 스크립트로 안내해 주시면 매우 감사하겠습니다. 감사.
보안 로그인을 작성하는 PHP 기술을 신뢰하지 않기 때문에 .htaccess를 사용하여 필자가 작성중인 PHP 스크립트의 디렉토리를 비밀번호로 보호하려고했으나 발견했습니다. AuthUserFile에 대한 상대 경로를 사용할 수 없으며이를 일반화 할 수 없습니다..htaccess없이 보안 디렉토리 비밀번호 보호
암호로 보호 된 PHP 보안 로그인 스크립트로 안내해 주시면 매우 감사하겠습니다. 감사.
"비밀"파일을 서버의 웹 루트 바깥에있는 디렉토리에 보관하면됩니다. 이러한 파일에 대한 모든 액세스는 디렉토리 내의 단일 PHP 스크립트를 통해 라우트 될 수 있습니다. 이런 식으로 뭔가 :
http://www.example.com/protected-directory/access.php?file=/foo/document.doc
디렉토리 구조로 이와 같은 :
$file = $_REQUEST['file'];
if ($user->hasAccessTo($file)) {
readfile("/server_root/protected_root/$file");
} else {
readfile('access-denied.html');
}
를 이제, 당신이 가지고 : 당신의 access.php
이 같은 일을 할 것이라고에서
+--+ /server_root
|
+--+ /web_root
| |
| +--+ /protected-directory
| +-- access.php
| +-- access-denied.html
|
+--+ /protected_root
|
+--+ /foo
+-- document.doc
아무도 너의 file
매개 변수로 나사를 풀지 말고 어떤 것을 "../../../etc/passwd"
. 또한 위의 예에서 올바른 헤더를 보내고 싶을 수도 있으므로 명확히하기 위해 생략했습니다.
AuthUserFile의 절대 경로를 사용하여 웹 서버에 액세스 할 수없는 장소에 파일을 배치 할 수 있습니다. 나는 수년 동안 해왔다. 잘 작동합니다.
내가 배포하는 경우 사용자가 스크립트를 배치 할 위치 나 그들이있는 OS를 알지 못합니다. 그래서 나는 .htaccess를 사용할 수 있다고 생각하지 않는다? – tom
여전히 .htaccess (및 .htpasswd)를 사용할 수 있습니다. 기본적으로 아파치 설정 (적어도 아파치 2 용)에는 .ht라는 파일에 대한 액세스를 차단하는 규칙이있다. –