【问题标题】:How could I block access from visitors from certain countries to a file on my site (xyz.com/thisFile.php)?如何阻止来自某些国家/地区的访问者访问我网站上的文件 (xyz.com/thisFile.php)?
【发布时间】:2011-10-01 17:56:57
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您意识到用户可以使用代理来解决这个问题,对吧?

标签: php .htaccess ip-address cloudflare


【解决方案1】:

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

<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】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多