.htaccess로 HTML 파일을 보호합니다
문제
내 PHP 앱은 404 개의 문서를 사용하여 HTML 파일을 생성하여 동일한 HTML 파일에 대한 여러 쿼리로 생성이 한 번만 실행되도록합니다.
파일을 끌어 올리려면 사용자가 설립 된 PHP 세션이 있어야하므로 HTML 파일에 대한 요청을 가로 채고 싶습니다.
최상의 경우, 세션 ID는 URL에 사용되며 강제로 추가 인증으로 사용할 수 있습니다. 예를 들어 로그인하면 SessionID가 발행되고 특정 HTML 파일 만 액세스 할 수 있습니다.
쿠키를 변경함으로써 요청을 스푸핑 할 수는 있지만 괜찮습니다.
이 작업을 어떻게할까요?
해결책
이와 같은 것이 효과가있을 수 있습니다 (테스트하지 않았습니다) :
RewriteCond %{HTTP_COOKIE} PHPSESSID=([a-zA-Z0-9]+)
RewriteCond %{REQUEST_FILENAME} %{REQUEST_FILENAME}-%1.html
RewriteRule ^ %{REQUEST_FILENAME}-%1.html
그것은 당신이 부여한다고 가정합니다 "-$session_id.html"
파일 이름에 ($session_id
PHP의 세션 ID).
안전해야하며 이점은 파일이 PHP를 전혀 호출하지 않고 웹 서버에서 직접 제공한다는 것입니다.
다른 팁
SetEnvIf HTTP_COOKIE "PHPSESSID" let_me_in
<Directory /www/static/htmls>
Order Deny,Allow
Deny from all
Allow from env=let_me_in
</Directory>
물론 사용자는 브라우저에서 이러한 쿠키를 수동으로 생성 할 수 있습니다 (Firefox의 경우 확장 기능이 있으며 항상 브라우저의 쿠키 스토어를 편집 할 수 있습니다).
당신은 사용할 수 있습니다 Apache 모듈 mod_rewrite 요청을 리디렉션합니다 .html
PHP 스크립트에 대한 URL :
RewriteEngine on
RewriteRule \.html$ script.php [L]
요청 된 URI 경로 및 쿼리는 $_SERVER['REQUEST_URI']
변하기 쉬운.
캐시 된 파일을 웹 루트에서 꺼내지만 여전히 PHP가 액세스 할 수있는 곳에 있습니다.
제휴하지 않습니다 StackOverflow