다음 .htaccess 파일이 있습니다.
RewriteEngine On
RewriteBase /
# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>
# Protect log.txt
<Files ./inscription/log.txt>
Order Allow,Deny
Deny from all
</Files>
# Disable directory browsing
Options All -Indexes
방문자가 다음 파일에 액세스하는 것을 금지하려고합니다.
domain.com/inscription/log.txt
하지만 위의 내용이 작동하지 않습니다. 브라우저에서 원격으로 파일에 계속 액세스 할 수 있습니다.
답변
htaccess 파일 내에서 <Files>
지시문 의 범위는 해당 디렉토리에만 적용됩니다 (하위 디렉토리의 htaccess에있는 규칙 / 지시문이 상위 디렉토리를 대체하여 적용될 때 혼동을 피하기 위해).
따라서 다음을 가질 수 있습니다.
<Files "log.txt">
Order Allow,Deny
Deny from all
</Files>
Apache 2.4+의 경우 다음을 사용합니다.
<Files "log.txt">
Require all denied
</Files>
inscription
디렉토리 의 htaccess 파일에서 . 또는 mod_rewrite를 사용하여 htaccess 파일과 log.txt에 대한 액세스를 거부하는 두 경우를 모두 처리 할 수 있습니다.
RewriteRule /?\.htaccess$ - [F,L]
RewriteRule ^/?inscription/log\.txt$ - [F,L]
답변
강력한 패턴 매칭 — 이것이 제가 Perishable Press에서 사용하는 방법입니다. 강력한 패턴 일치를 사용하는이 기술은“ .hta ”,“. HTA ”또는 대소 문자를 구분하지 않는 조합이 포함 된 파일에 대한 외부 액세스를 방지 합니다. 설명을 위해이 코드는 다음 요청을 통한 액세스를 차단합니다.
- .htaccess
- .HTACCESS
- .hTaCcEsS
- testFILE.htaccess
- filename.HTACCESS
- FILEROOT.hTaCcEsS
..etc. 등. 분명히이 방법은 사이트의 HTAccess 파일을 보호하는 데 매우 효과적입니다. 또한이 기술에는 강화 ” 모두 만족 “지침 도 포함됩니다 . 이 코드는 도메인의 루트 HTAccess 파일에 있어야합니다.
# STRONG HTACCESS PROTECTION
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>
답변
나는 현재 받아 들여지는 대답이 정확하지 않다고 생각합니다. 예를 들어 .htaccess
가상 서버 (apache 2.4)의 루트에 다음 파일이 있습니다.
<Files "reminder.php">
require all denied
require host localhost
require ip 127.0.0.1
require ip xxx.yyy.zzz.aaa
</Files>
이렇게하면 reminder.php
하위 디렉터리에있는 외부 액세스가 방지 됩니다. .htaccess
Apache 2.2 서버에 동일한 효과 가있는 유사한 파일이 있습니다.
<Files "reminder.php">
Order Deny,Allow
Deny from all
Allow from localhost
Allow from 127.0.0.1
Allow from xxx.yyy.zzz.aaa
</Files>
나는 확실히 모르지만 나는 그것이에 특히 하위 디렉토리를 정의하려는 시도이다 의심 .htaccess
파일, 즉 <Files ./inscription/log.txt>
그것이 실패의 원인이된다. .htaccess
파일을 동일한 디렉토리에 log.txt
ie 디렉토리에 두는 것이 더 간단하며 inscription
거기에서 작동합니다.
답변
.htaccess 파일에 아래 줄을 넣고 원하는대로 파일 이름을 바꿉니다.
RewriteRule ^(test\.php) - [F,L,NC]
답변
<Directory>
예를 들어 태그를 사용할 수 있습니다 .
<Directory /inscription>
<Files log.txt>
Order allow,deny
Deny from all
</Files>
</Directory>
사용하는 ./
경우 /
사이트의 루트 디렉토리를 확인하므로 사용하지 마십시오 .
더 자세한 예는 http://httpd.apache.org/docs/2.2/sections.html을 참조하십시오 .