如何确保使用触发电子邮件的PHP脚本?

tuc*_*son 5 php security

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

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

envoi.php?nom=John&email=john@domain.com
Run Code Online (Sandbox Code Playgroud)

触发一封电子邮件发送到john@domain.com.

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

现在我担心如果有人抓住它的URL,这个脚本显然会被滥用.

如何保护对此脚本的访问权限?

Ani*_*han 3

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

$_SESSION["mail_allowed"] = true;
Run Code Online (Sandbox Code Playgroud)

步骤2:请求照常发送至

envoi.php?nom=John&email=john@domain.com
Run Code Online (Sandbox Code Playgroud)

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

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

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