2011-10-01 42 views
2

我需要阻止来自某些国家的上传图片的访问者 - 但他们应该能够访问该网站。如何禁止某些国家的访问者访问我网站上的文件(xyz.com/thisFile.php)?

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

谢谢。

+0

你意识到用户可以使用代理来解决这个问题吧? – Amber

+0

很显然我这样做。 – oxo

回答

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

这正是我所需要的。谢谢。 – oxo

2

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

0

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

相关问题