高级“;喜欢“;防御点击欺诈的系统


Advanced "Like" system with defense from click fraud

我不是专业人士,所以不要因为这些问题而狠狠地踢我:)你仍然可以因为我完美的英语(*讽刺*)而踢我

我想在我的网站上实现"点赞"系统。主要问题是没有注册。这意味着点赞对点击量没有限制。

  1. 据我所知,我可以通过IP进行点赞点击过滤,在mySQL中编写点赞ID。但对于拥有相同IP的用户来说,这并不是一个好主意。

  2. 我可以制作cookie文件并在那里写点赞ID。它可以防止出现漏洞,但关闭cookie或清除cookie并再次开始点击欺诈是没有问题的。

  3. 最后一件事是如何防止类似增加的手动脚本执行?例如,我的脚本名为"addlike.php"。直接发送POST请求、请求、请求并不难。像这样"http://example.com/addlike.php?id=2"n次,例如更改ID。

谢谢大家!

您遇到的这个问题是网站要求用户在提交投票、点赞等输入之前登录的主要原因。据我所知,如果您绝对需要用户匿名,那么您列出的方法组合是您最好的防御方法。它还取决于您的用例:

如果你的目标用户经常在同一个互联网连接上,那么单凭IP过滤并不是一个好的解决方案,因为每个IP只能有一个人提交。然而,您可以创建每个IP的最大提交数量(比如10)。如果你的用户是合法的,并且同一IP上的人不超过10人,他们的点赞会很好。如果有黑客试图向系统发送垃圾邮件,他们只会得到10个赞,然后就会被阻止。这是一个权衡,你必须做出决定。

通过cookie进行过滤总是一个很好的计划,可以防止技术知识很少的普通用户使用,但肯定会被构建脚本的人利用。你给用户一个唯一的id,将其存储在cookie中,并且每个唯一的id只允许一个"赞"。这将阻止用户简单地刷新页面,或打开一个新的选项卡来第二次"点赞"。

需要注意的是,这些技术都无法对抗分布式机器人。如果有人可以访问大量唯一的IP地址,这些地址可以运行他们提供的脚本,那么你没有简单的方法来检测和阻止它们。

编辑:

我不完全清楚你的第三种技术在做什么。如果你只是每次增加一个数字,那么你只是在防止重放攻击(攻击者一遍又一遍地重放同一请求)。聪明的攻击者会注意到增量,并将其包含在脚本中。