我有一个ajax - > PHP简单的聊天,我想阻止用户发送太多聊天请求或消息太快。限制任何一个用户可以发送的邮件数量以避免发送垃圾邮件的好方法是什么。我已经完成了对空值和空格消息的正常检查。我正在寻找一种方法来阻止用户背靠背发送多条消息,例如不断按下发送按钮或按回车键。我想将此操作限制为每5秒1条消息,或者如果用户在5秒内发送太多问题以强制等待一段时间,然后才能发送另一条消息。
答案 0 :(得分:2)
我觉得每分钟阈值方法比为每条消息设置一个恒定的时间延迟更好。这会感觉更自然。
如果在客户端的JS中实现,那么同样检查服务器端的速率也是明智的,如果超过速率则返回错误代码。如果有人试图通过泛滥请求来利用AJAX端点,但您也可以实施某种CSRF策略来避免该漏洞利用场景。
答案 1 :(得分:1)
处理此问题的一种简单方法是在发送新的聊天消息后启动计时器,然后禁用聊天消息提交,直到该计时器达到某个数字(例如5秒,15秒,30秒)。您可以通过禁用并显示“发送”按钮来向用户直观地指出这一点。
答案 2 :(得分:0)
实施延时:用户无法在一分钟内发布超过15次的聊天内容。