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

标签 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

谢谢。

最佳答案

更改问题中的代码行:

<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

关于php - 如何阻止来自某些国家/地区的访问者访问我的网站 (xyz.com/thisFile.php) 上的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7621945/

相关文章:

.htaccess - 如何使用 .htaccess 重写将根 URL 重定向到子目录?

java - 从 csv 中删除重复项并在 Java 中对它们进行计数

ip - 获取 2 个 IP 地址之间的地理距离?

linux - 如何获取 IPv6 主机的范围?

php - 常见的未知 PHP 安全陷阱

php - 基于动态配置文件的网站也有硬链接(hard link)?

WordPress 多站点文件未找到问题

php - PHP 中的长文本数据类型

php - 基于 Vim 语法的 php 折叠

apache - 将环境变量与If语句一起使用