我正在制作一个社交网站,用户可以在其中发布内容并且内容具有视图。每当来自不同 IP 地址的用户查看内容时,查看次数就会增加;来自同一 IP 地址的多个请求不计算在内。然而最近有人正在迭代代理列表或其他东西并人为地增加视图计数。我怎样才能防止这种情况?我可以通过检查标题或其他东西来做些什么吗?谢谢。
2 回答
最好的方法是模式识别,因为大多数代理不会告诉您它们是代理:如果您看到某些流量高峰,请标记它们并且不要将它们添加到命中计数中。
或者,如果他一遍又一遍地使用相同的代理,只需将这些 IP 地址列入黑名单。您还可以尝试通过使用某种 API 代理列表服务或检查侦听代理服务器来检测代理。
有一些解决方案,但让我们解释一下问题
1-公共代理
公共代理总是向您的服务器发送特殊标头 (HTTP_X_FORWARDED_FOR) 包含您可以查询的用户真实 IP
$remoteaddr =$_SERVER["REMOTE_ADDR"]; //proxy IP
$xforward = $_SERVER["HTTP_X_FORWARDED_FOR"]; //Real User IP
2-代理保护用户真实IP
此类代理通过不发送真实用户 IP 来保护他们的用户,您无法保护自己免受此代理的侵害,您所能做的就是获取此代理的更新列表并禁止它,以任何方式支付大多数代理不是免费代理,因此并非所有垃圾邮件用户都使用它
3-机器人和不良ips
有机器人的公共列表和更新的 http://www.projecthoneypot.org ,并且有它的 php 实现https://github.com/joshtronic/php-projecthoneypot
4- Tor 网络
您可以通过在 TorNodes Example Request 中查询请求的 ip 来检测 Tor 网络
https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1&port=80
注意:1.1.1.1 是您的服务器 ip,端口是您的端口,请求回复带有可以通过该端口连接到该 ip 的 Tor 节点列表
这就是我现在的想法,我希望这能回答你的问题