起始位置的最佳描述是Sending Emails With PHP & jQuery文字。
TL; DR我用jQuery.post()调用php脚本。
中,Php有这样的东西$to = $_REQUEST['to'];
$from = $_REQUEST['from'];
$message = $_REQUEST['content'];
$subject = $_REQUEST['subject'];
$header = "From: <".$from.">" ."\r\n";
mail($to, $subject, $message, $header);
问题是如何通过创建一个js循环并将其调用一百万次来保护我的邮件脚本免受滥用?或者只是通过帖子来调用它?
答案 0 :(得分:1)
针对多个呼叫的防御必须是服务器端。您的客户端代码可以被攻击者修改,或者攻击者可以编写自己的客户端。
我会考虑限制策略,如果这不是很多工作,那么进入身份验证,可以使限制更加有效。最天真的节流方式是跟踪脚本最后一次执行的时间,如果这个时间比过去的一段时间长,那么只允许重新执行。此信息需要持久存储,可能存储在文件或数据库中的磁盘上。
答案 1 :(得分:0)
为了避免自动表单提交,Web开发人员通常会使用CAPTCHA
。您还应该使用基于图像的CAPTCHA
来确保您的表单安全。
答案 2 :(得分:0)
在$ to和$ header参数中信任用户输入也无法保存。攻击者可以添加数百个收件人,因此他甚至不需要多次调用脚本。