有没有办法区分JavaScript点击和真实用户点击

时间:2010-12-09 05:39:42

标签: jquery dom javascript-events event-handling spam-prevention

我有一个JavaScript点击事件绑定到一个锚点链接,通过Ajax点击提交用户数据。这个链接实际上没有去任何地方,它只是一个Ajax帖子。

问题是用户可以编写脚本以快速提交垃圾邮件。有没有办法禁止JavaScript触发click事件。

我可以对它进行防洪控制,在不破坏聊天室功能的情况下,我无法使用太过于令人震惊的控件。

由于

4 个答案:

答案 0 :(得分:2)

  

问题是用户可以写   快速垃圾邮件提交的脚本

AFAIK,您将无法区分javascript点击和用户点击。

最好的办法是验证提交的数据。

答案 1 :(得分:0)

如果您真的想要进行一些验证来停止自动提交,您可以添加所有网站所做的图像检查。

用户必须输入他看到的图像以继续进行,我不知道该图像的技术名称。

它可以停止用户自动化作业

答案 2 :(得分:0)

如果您的目的是阻止用户做有害的事情,那么在客户端进行检查是一个非常糟糕的主意。总有办法解决它。唯一可靠的方法是检查服务器。

每个用户只能拥有两个变量:垃圾邮件分数和最后一个帖子的时间戳。每当用户发布新消息时,计算自上次消息以来经过了多少时间并且每秒降低得分,但是对于发送的每个消息,将其增加固定值。一旦达到阈值,拒绝新消息,直到它再次减少。

答案 3 :(得分:0)

您可以检查event.which属性,该属性应包含按下的键的键(对于鼠标,通常为1,2或3)代码。如果该属性不存在,则可能是JavaScript点击事件而不是用户鼠标单击。

if (event.which != null) {
    // likely was user click
}