Как можно заблокировать доступ посетителей из определенных стран к файлу на моем сайте (xyz.com/thisFile.php)? - PullRequest
2 голосов
/ 01 октября 2011

Мне нужно запретить посетителям из некоторых стран загружать изображения, но они должны иметь доступ к сайту.

Например, У меня есть сайт xyz.com. Как я сейчас настрою, все посетители из стран, занесенных в черный список, не могут получить доступ к самому сайту, и их встречают с помощью 403. Конечно, это не очень хорошее решение, поэтому я хочу настройте его так, чтобы эти пользователи могли по-прежнему получать доступ к сайту и играть с ним, но НЕ иметь возможности загружать изображения (что происходит путем нажатия на xyz.com/upload/, который является псевдонимом xyz.com/upload_file.php). Очевидно, что любой другой пользователь из других стран, включенных в белый список, должен иметь возможность использовать все функциональные возможности сайта, за исключением пользователей из стран, включенных в черный список, которые не могут загружать свои изображения.

Как я могу убедиться в этом через .htaccess? Я в настоящее время на Cloudflare, и соответствующий текст в .htaccess выглядит следующим образом:

SetEnvIf CF-IPCountry AA UnwantedCountry=1
SetEnvIf CF-IPCountry BB UnwantedCountry=1
SetEnvIf CF-IPCountry CC UnwantedCountry=1
Order allow,deny
Deny from env=UnwantedCountry
Allow from all

Спасибо.

Ответы [ 3 ]

3 голосов
/ 01 октября 2011

Измените эти строки кода в вашем вопросе следующим образом:

<Files "upload_file.php">
SetEnvIf CF-IPCountry AA UnwantedCountry=1
SetEnvIf CF-IPCountry BB UnwantedCountry=1
SetEnvIf CF-IPCountry CC UnwantedCountry=1

Order allow,deny
Allow from all
Deny from env=UnwantedCountry
</Files>

Это ограничит доступ этих стран только к файлу upload_file.php.

2 голосов
/ 01 октября 2011

Должен ли это быть псевдоним? Не могли бы вы просто создать папку upload/ и поместить туда .htaccess? Это может потребовать изменения некоторой логики upload_file.php, но мне кажется, что это самое простое исправление.

0 голосов
/ 01 октября 2011

Я думаю, что файлы .htaccess могут быть помещены в подкаталог / any /.Переместите код загрузки файла в каталог и поместите туда элементы управления .htaccess?

...