如何阻止来自某些国家/地区的访问者访问我网站上的文件(xyz.com/thisFile.php)?

时间:2011-10-01 17:56:57

标签: php .htaccess ip-address cloudflare

我需要阻止来自某些国家/地区的访问者上传图片 - 但他们应该能够访问该网站。

例如我有一个网站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 个答案:

答案 0 :(得分:3)

使用以下代码更改问题中的代码行:

<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

答案 1 :(得分:2)

它必须是别名吗?你能创建一个upload/文件夹,并把.htaccess放在那里吗?它可能需要更改一些upload_file.php逻辑,但这对我来说似乎是最简单的修复。

答案 2 :(得分:0)

我认为.htaccess文件可以放入/ any /子目录。将文件上传代码移到目录中并将.htaccess控件放在那里?