如何防止我的网站被“刷访问量”?

4

我正在制作一个社交网站,用户可以发布内容并获得浏览量。每当来自不同IP地址的用户查看内容时,浏览计数会递增;来自同一IP地址的多个请求不会被计算。然而最近有人正在通过代理列表等方式进行迭代,并人为地增加浏览计数。我该如何防止这种行为?是否有一些方法可以通过检查头文件之类的方式来实现?谢谢。


有时是不可能的。https://dev59.com/XXRA5IYBdhLWcg3wsgPq - darksky
2个回答

2

最好的方法是使用模式识别,因为大多数代理都不会告诉你它们是代理:如果你看到某些流量的峰值,请标记它们并不计入点击次数。

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


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- 机器人和恶意IP地址

有公共机器人列表并进行更新 http://www.projecthoneypot.org,并且有PHP实现 https://github.com/joshtronic/php-projecthoneypot

4- Tor网络

您可以通过查询TorNodes中请求的IP地址来检测Tor网络。 例如请求

https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=1.1.1.1&port=80

注意:1.1.1.1是您的服务器IP,端口是您的端口,请求将回复可以通过该端口连接到该IP的Tor节点列表。
这就是我现在脑海中的想法,希望这回答了您的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接