如何停止直接将HTTP POST发送到PHP脚本? 时间:2013-02-27 作者:Anand Shah 我在我的网站上有一个表单,使用带有Captcha的联系人表单7创建。表单的内容在发布时发送到PHP脚本,表单的“action”属性设置为themes/<themename>/<filename>.php 我们收到了很多垃圾邮件,似乎有人可以手工制作表单并使用它发送垃圾邮件。在处理脚本中,我检查HTTP_REFERRER, HTTP_SERVER 查看请求是否通过我们的网站传入,但也可以在中手动创建这些标题。我需要采取哪些步骤来阻止垃圾邮件的传入?感谢您的帮助。EDIT : 更清晰一些。CF7将表单数据发布到我的脚本http://www.example.com/wp-content/themes/themename/script.php , 该脚本是可访问的。有人可以转到我的表单所在的页面,复制HTML,在本地计算机上重新创建表单,然后开始将表单提交到我的脚本。我该怎么阻止呢? 3 个回复 最合适的回答,由SO网友:RRikesh 整理而成 您必须使用wpcf7_before_send_mail 并将PHP代码添加到函数中。php(因为脚本已经在您的主题文件夹中)?你不会失去CF7的任何能力。function wpse_process_form( &WPCF7Object ){ #process your form here } add_action(\'wpcf7_before_send_mail\', \'wpse_process_form\' ); SO网友:Mark Kaplun 如果您正在寻找一种在不阻止合法用户的情况下检测垃圾邮件的解决方案,那么请使用akismet。如果不检查内容本身,根本没有可靠的技术方法来检测垃圾邮件。智能垃圾邮件发送者甚至会在发送表单之前加载您的页面。唯一可行的技术解决方案是阻止IP范围,前提是您可以识别出从中获取大部分垃圾邮件的IP。您还可以尝试通过使用阻止已知的“坏”IPproject honeypot. SO网友:Prasad Ajinkya 就连我也面临着这个问题。这就是我最终所做的。更改后处理脚本的文件名在表单中,保留一个隐藏的表单元素,它是一个虚拟元素,如果这个元素被填充,那么它就是一个垃圾邮件发送者!!因此,在您的后期处理脚本中,检查此虚拟元素是否正在发布-如果是,则它是垃圾邮件发送者 结束 文章导航