我在用户填写消息的页面上有一个表单,当单击“发送”按钮时,它通过 ajax 发送到 php 脚本。那里通过 mail() 消息被发送到特定的电子邮件地址。
我想避免恶意用户在短时间内发送 1000 封电子邮件的情况。如果我错了,请告诉我,但这将是一种 DOS 攻击,这可能会由网络服务器本身处理。我在共享主机上,我会假设大型主机提供商会限制这种行为,因此在我的 php 脚本出现之前,对我的页面的多次自动点击会以某种方式被阻止。
如果不是这种情况,那么最好的预防方法是什么?我仍然不能 100% 确定我的主机会做这部分工作,并且想知道我可以从 PHP 本身做些什么来帮助?
编辑:我正在考虑将时间戳存储在 Session 变量中,但是如果有人关闭了 cookie,那么会话将不存在。是否可以检查浏览器中的cookies是否打开,如果不是简单地忽略请求?如果 cookie 处于打开状态,则将时间戳存储在会话中,并与每个请求进行比较,例如在发送电子邮件之前经过 5 秒?