Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单自己发布,邮件自己发送。是谷歌吗?_Php_Shopping Cart - Fatal编程技术网

Php 表单自己发布,邮件自己发送。是谷歌吗?

Php 表单自己发布,邮件自己发送。是谷歌吗?,php,shopping-cart,Php,Shopping Cart,我开了一家网店,每隔几天就会发送一封空邮件,就像订单一样。这最有可能是谷歌吗 我有一个名为send2.php的文件,它从会话中获取所有信息、所有post数据,并通过邮件发送。之后,它会重定向到“谢谢”页面 google是否可以发送空表单来查看send2.php中的内容?防止这种情况发生的最佳方法是什么 将名为robots.txt的文件添加到根目录中,并将其放入其中: User-Agent: * Disallow: /path/to/send2.php 请记住,这不是一个完美的解决方案。这将阻止

我开了一家网店,每隔几天就会发送一封空邮件,就像订单一样。这最有可能是谷歌吗

我有一个名为send2.php的文件,它从会话中获取所有信息、所有post数据,并通过邮件发送。之后,它会重定向到“谢谢”页面


google是否可以发送空表单来查看send2.php中的内容?防止这种情况发生的最佳方法是什么

将名为
robots.txt的文件添加到根目录中,并将其放入其中:

User-Agent: *
Disallow: /path/to/send2.php
请记住,这不是一个完美的解决方案。这将阻止(合作)网络爬虫访问您的页面

参考


更好的解决方案包括用户身份验证(确保提示您脚本的代理不是机器人)。

如果您接收的邮件是空白值,因为在整个会话中没有设置这些值,那么为什么不在发送邮件之前检查这些值呢?确实,罪魁祸首很可能是爬虫,他们中的许多人(包括bingbot)不会听robots.txt文件,加上robots文件是黑客收集信息的第一个地方

<?php 
if(!empty($_SESSION['some_info'])){
    mail(...);
}
?>

正如其他人所提到的,使用
empty()
检查和
robots.txt
绕过良性机器人有多种方法。然而,这些依赖于机器人尊重您的站点。许多机器人会尝试向表单中注入值(意味着
空检查将不起作用),而这些机器人并不关心
robots.txt
(如果
robot.txt
Disallow
实际上鼓励一些机器人以你的网站为目标,并假定你可能有敏感的东西……但这只是猜测,我不会感到惊讶)

你最好的办法是进行“人类检查”。要么实施一个解决方案,要么在你允许提交之前进行一些计算机难以解决或解析/理解的逻辑测试:“这是什么动物?[普通动物的照片]”,“解这个简单方程[(12/4)+1]”,等等


这些检查必须是服务器端的。它们通常涉及设置带有“answer”的
$\u会话
变量在首次加载表单时执行质询任务,然后在提交表单后检查他们针对此会话变量输入的值。绝不依赖Javascript为您进行验证(正如您在对x711Li的评论中所提到的)。Javascript验证纯粹是为了方便用户而进行的(这样他们可以在提交前看到问题)或减少服务器上的负载(这样你就不必运行/记录大量失败的提交)。任何人或机器人都可以绕过或操纵Javascript验证,因此请确保您最终使用的任何方法都涉及服务器端检查。

注意:这只会影响寻找并尊重robots.txt的优秀机器人。有许多机器人会忽略此设置。我需要什么样的用户身份验证?例如服务器side验证?我目前只有javascript验证。问题是,每封电子邮件都会产生一份传真,我的客户不喜欢浪费纸张和传真。为什么不检查服务器访问日志,看看哪个IP会命中该脚本,然后你就可以确定这些IP是否属于谷歌。不过,这可能是一个垃圾邮件机器人。特别是如果我有这是一个链接到该脚本的表单。