我有一个ajax-> PHP简单的聊天,我想阻止用户发送太多的聊天请求,或消息太快。限制任何用户可以发送的消息量以避免垃圾邮件是一种好方法。我已经完成了对空值和空白消息的正常检查。我正在寻找一种方法来防止用户反复发送多个消息,例如不断按下发送按钮或按下回车键。我想限制此操作每5秒1条消息,或者如果用户在5秒钟内发送太多问题以强制等待一段时间才能发送另一条消息。jQuery聊天应用程序垃圾邮件
回答
执行时间延迟:用户无法在一分钟内发帖超过15次。
处理此问题的一种简单方法是在发送新的聊天消息后启动计时器,然后禁用聊天消息提交直到该计时器达到特定数目(例如5秒,15秒,30秒)。您可以通过禁用和灰色显示“发送”按钮,直观地向用户指明此情况。
我觉得每分钟定位的方法会比为每条消息设置一个恒定的时间延迟要好。这会感觉更自然。
如果在客户端使用JS实现,那么在服务器端也检查速率并且在超出速率的情况下返回错误代码会很明智。如果有人试图通过淹没请求来利用AJAX端点,但是您也可以实施某种CSRF策略来避免该利用情形。
我更喜欢这样的方法,但我如何保持这个门槛每分钟与JS? – kabuto178 2013-03-16 00:00:34
使用'window.setInterval'并且每次AJAX请求时,在全局变量中保持一个运行的计数。您可以使用间隔每分钟将这些记录重新打回0。如果您有多个聊天窗口,则可以为每个活动的聊天窗口保留一个数组。 – gmartellino 2013-03-16 00:06:08
- 1. C#聊天客户端聊天垃圾邮件自动拦截
- 2. 垃圾邮件与垃圾邮件
- 3. 垃圾邮件
- 4. 防止垃圾邮件机器人撞到Rails应用程序
- 5. Facebook应用程序垃圾邮件阈值
- 6. 垃圾邮件保护在web应用程序
- 7. Django应用程序垃圾邮件阻止
- 8. 防垃圾邮件
- 9. 防止使用php邮件功能将垃圾邮件视为垃圾邮件
- 10. 垃圾邮件检查,垃圾邮件得分如何?
- 11. ASP.NET聊天应用程序
- 12. jQuery停止点击垃圾邮件
- 13. PHP编程垃圾邮件防护
- 14. Unity Debug.Log()垃圾邮件
- 15. 网站被垃圾邮件
- 16. Django评论垃圾邮件
- 17. JS垃圾邮件防护
- 18. PageRank和垃圾邮件
- 19. Swiftmailer垃圾邮件测试
- 20. 跨站点垃圾邮件
- 21. (WinSocket)垃圾邮件断开
- 22. Api限制/垃圾邮件
- 23. jQuery的 - 如何阻止垃圾邮件的用户事件处理程序
- 24. 防止电子邮件垃圾邮件?
- 25. 邮件到达垃圾邮件
- 26. sendmail邮件标记为垃圾邮件
- 27. PHP电子邮件垃圾邮件
- 28. ASPX发送邮件为垃圾邮件
- 29. Cakephp电子邮件去垃圾邮件
- 30. Zimbra邮件转到垃圾邮件
您可能需要将聊天请求存储在数据库或会话的某处。 – 2013-03-15 22:30:29