Защитить PHP от недействительного реферера через .HTACCESS? - PullRequest
0 голосов
/ 03 марта 2012

Я нахожусь в ситуации, когда у меня есть включаемые файлы, но я не хочу, чтобы другие люди заходили в каталог "включенные" и просматривали страницы по отдельности через браузер.

Я хорошо знаком с тем, какподойти к нему через сами файлы PHP, но я хочу использовать .htaccess для предотвращения этого на этот раз.

Итак, как мне настроить .htaccess, чтобы пользователи НЕ приходили от определенного реферера от просмотра файлов PHPвнутри папки "includes"?

Ответы [ 3 ]

2 голосов
/ 03 марта 2012

.htaccess будет работать, но только для того, чтобы предложить альтернативу - почему бы не переместить каталог include за пределы webroot? Ваши сценарии все еще могут получить к нему доступ, и нет необходимости настраивать apache для запрета доступа.

0 голосов
/ 04 марта 2012

Поскольку многие решения для веб-хостинга явно ограничивают вас в работе с иерархией public_html (или ее эквивалентом). Поэтому я использую простое соглашение: если я не хочу, чтобы файл или каталог были приватными - они недоступны через URI, - тогда я добавляю к его имени префикс «_» или «.». "Например, мой PHP-каталог включает в себя" _includes ".

Я использую этот шаблон в моих .htaccess файлах для обеспечения этого:

 SetEnvIf Request_URI "(^_|/_|^\.|/\.)" forbidden
 <Files *>
    Order allow,deny
    Allow from all
    Deny from env=forbidden
 </Files> 

Вы можете использовать этот подход, но измените регулярное выражение так, как вам удобно. Одним из преимуществ является то, что он работает с этим шаблоном в вашем файле DOCROOT .htaccess. Вам не нужно иметь .htaccess файлы в ограниченных подкаталогах.

: -)

0 голосов
/ 03 марта 2012

Поместите файл .htaccess в каталог, который вы не хотите просматривать, и поместите его туда:

order allow, deny
deny from all

Это простой подход для всех. Более подробную информацию о том, как заблокировать по рефереру, можно найти здесь . Надеюсь, это поможет.

...