4

我正在制作一个社交网站,用户可以在其中发布内容并且内容具有视图。每当来自不同 IP 地址的用户查看内容时,查看次数就会增加;来自同一 IP 地址的多个请求不计算在内。然而最近有人正在迭代代理列表或其他东西并人为地增加视图计数。我怎样才能防止这种情况?我可以通过检查标题或其他东西来做些什么吗?谢谢。

4

2 回答 2

2

最好的方法是模式识别,因为大多数代理不会告诉您它们是代理:如果您看到某些流量高峰,请标记它们并且不要将它们添加到命中计数中。

或者,如果他一遍又一遍地使用相同的代理,只需将这些 IP 地址列入黑名单。您还可以尝试通过使用某种 API 代理列表服务或检查侦听代理服务器来检测代理。

于 2012-07-28T01:27:40.007 回答
1

有一些解决方案,但让我们解释一下问题

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 节点列表

这就是我现在的想法,我希望这能回答你的问题

于 2014-08-28T11:06:02.400 回答