我构建了一个PHP脚本来发送电子邮件(基于Amazon SES)。
所以我可以对我的PHP脚本进行GET或POST Ajax调用:
envoi.php?nom=John&email=john@domain.com
触发将电子邮件发送至john@domain.com。
我的网站有一个注册表单,在提交时对PHP脚本进行jquery ajax调用(网站和PHP脚本在同一台服务器上)。我也将脚本用于其他事件。
现在我担心如果有人抓住它的URL,这个脚本显然会被滥用。
如何保护对此脚本的访问权限?
答案 0 :(得分:4)
您可以使用captcha来保护对此脚本的访问,并使滥用行为更加困难。
答案 1 :(得分:3)
第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');
}
这样,用户可以在打开页面后发送邮件,但不能直接执行邮件脚本。
答案 2 :(得分:1)
是的,这很容易被滥用。没有可靠的解决方案,但有几种方法可以保护它: