javascript - 如何防止自动点击赞成票/反对票按钮的垃圾邮件?

标签 javascript ajax django web-applications spam-prevention

我有一个投票按钮,用户可以按下该按钮并进行投票。再次点击此按钮,投票将被取消。

所以每次按下这个按钮都会执行一次数据库写入。如果连续在此按钮上使用自动点击器,将发生连续的数据库调用。我想阻止这种情况。 我能做什么?

附言。单击赞成按钮时,我正在向后端(运行 Django)发送一个 ajax 查询。

最佳答案

你真的想在服务器上检查这个,所以如果有人禁用 javascript 也没关系。

如果您使用的是 PHP,一个选项是设置投票之间的时间限制。例如,每分钟只允许一次投票。

因此在每次投票时,将投票时间存储在 session 变量中,然后如果在时限内则忽略后续投票:

//on vote
$now=date('U');
if(!isset($_SESSION['lastvote']) || $now - $_SESSION['lastvote']<LIMIT){
    $_SESSION['lastvote']=$now;
    // do database call

}else{
    //throw error
}

关于javascript - 如何防止自动点击赞成票/反对票按钮的垃圾邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929641/

相关文章:

javascript - 如何通过 WinForms 的 WebBrowser 控件处理 Javascript 事件

mysql - 用户界面自动完成 : Make multiple ajax requests or load all data at once for a list of locations in a city?

python - Django 登录所需的中间件不重定向

javascript - Ajax POST FormData 在 Spring MVC 中抛出异常

python - View 函数中无法获取表单数据: Django

python - 使用破折号 VS 下划线的 Django 模板命名

javascript - firebug 上的 "this._processor is null"错误是什么?

javascript - Nodejs递归调用堆栈错误,但是代码应该没问题

javascript - 在 JavaScript 中如何检测天气类型是 Array 还是 Object?

jquery - 如何在 AJAX 中获取响应头