0

起始位置的最佳描述是使用 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 循环并调用它一百万次来保护我的邮件脚本免受滥用?或者只是通过邮寄来称呼它?

4

3 回答 3

1

在 $to 和 $header 参数中信任用户输入也不会保存。攻击者可以添加数百个收件人,因此他甚至不需要多次调用脚本。

于 2013-01-25T17:32:29.770 回答
1

对多个调用的防御必须在服务器端。攻击者可以修改您的客户端代码,或者攻击者可以编写自己的客户端。

我会研究节流策略,如果这不是太多工作,则进入身份验证,这可以使节流更有效。最简单的节流方法是跟踪脚本最后一次执行的时间,并且仅在该时间长于过去一定时间时才允许重新执行。此信息需要永久存储,可能存储在磁盘中的文件或数据库中。

于 2013-01-25T17:28:08.370 回答
0

为了避免自动提交表单,Web 开发人员通常使用CAPTCHA. 您还应该使用基于图像的CAPTCHA方式来确保您的表单安全。

于 2013-01-25T17:32:04.497 回答