5

我构建了一个 PHP 脚本来发送电子邮件(基于 Amazon SES)。

所以我可以对我的 PHP 脚本进行 GET 或 POST Ajax 调用:

envoi.php?nom=John&email=john@domain.com

触发要发送到 john@domain.com 的电子邮件。

我的网站有一个注册表单,在提交时会对 PHP 脚本进行 jquery ajax 调用(网站和 PHP 脚本在同一台服务器上)。我也将脚本用于其他事件。

现在我担心如果有人掌握了它的 URL,这个脚本显然会被滥用。

如何保护对该脚本的访问?

4

3 回答 3

4

您可以使用验证码来保护对该脚本的访问,并使滥用变得更加困难。

于 2012-07-17T14:59:19.410 回答
3

Step1:当用户打开注册表,可以发送邮件并通过验证码时,设置一个$_SESSION参数。

$_SESSION["mail_allowed"] = true;

Step2:请求照常发送到

envoi.php?nom=John&email=john@domain.com

Step3:最后,在邮件脚本中,执行如下操作:

if($_SESSION["mail_allowed"]){
    $_SESSION["mail_allowed"] = false;
    //send mail  
}
else{
    die('File cannot be executed directly');
}

这样,用户一旦打开您的页面就可以发送邮件,但不能直接执行邮件程序脚本。

于 2012-07-17T15:13:16.890 回答
1

是的,这很容易被滥用。没有可靠的解决方案,但我想到了几种保护它的方法:

  • 仅允许链接对您确定不是机器人的经过身份验证的用户有效(验证码?)
  • 防止同一个IP地址发出重复请求。
于 2012-07-17T15:00:55.820 回答