我构建了一个发送电子邮件的php脚本(基于amazon ses)。
所以我可以对我的php脚本进行get或post ajax调用:
envoi.php?nom=John&email=john@domain.com
触发发送到john@domain.com的电子邮件。
我的网站有一个注册表单,在提交时对php脚本进行jquery ajax调用(网站和php脚本位于同一服务器上)。我还将脚本用于其他事件。
现在我担心,如果有人掌握了这个脚本的url,它显然会被滥用。
如何确保访问此脚本的安全?
最佳答案
第1步:当用户打开注册表,从中发送邮件并通过验证码时,设置一个$_SESSION
参数。
$_SESSION["mail_allowed"] = true;
步骤2:请求照常发送到
envoi.php?nom=John&email=john@domain.com
步骤3:最后,在邮件脚本中,执行如下操作:
if($_SESSION["mail_allowed"]){
$_SESSION["mail_allowed"] = false;
//send mail
}
else{
die('File cannot be executed directly');
}
这样,用户可以在打开页面后发送邮件,但不能直接执行mailer脚本。