Php 如何识别curl请求

Php 如何识别curl请求,php,curl,http-headers,security,Php,Curl,Http Headers,Security,是否有一种方法可以在我的脚本中检测请求是来自普通web浏览器还是来自某个正在执行的脚本。我可以看到标题,可以与“用户代理和其他几个标题”区分开来,但在curl中可以设置假标题,因此我无法跟踪请求 请告诉我如何识别curl或其他类似的非浏览器请求。据我所知,您看不出来自浏览器的“真实”呼叫与来自curl的呼叫之间的区别 您可以比较标题(用户代理),但我只知道它。严格来说,没有办法。 虽然有非直接技术,但我绝不会公开讨论,尤其是在像Stackoverflow这样的网站上,它鼓励屏幕抓取、内容扫描自动

是否有一种方法可以在我的脚本中检测请求是来自普通web浏览器还是来自某个正在执行的脚本。我可以看到标题,可以与“用户代理和其他几个标题”区分开来,但在curl中可以设置假标题,因此我无法跟踪请求


请告诉我如何识别curl或其他类似的非浏览器请求。

据我所知,您看不出来自浏览器的“真实”呼叫与来自curl的呼叫之间的区别


您可以比较标题(用户代理),但我只知道它。

严格来说,没有办法。
虽然有非直接技术,但我绝不会公开讨论,尤其是在像Stackoverflow这样的网站上,它鼓励屏幕抓取、内容扫描自动转载和所有这些肮脏的机器人操作


在某些情况下,您可以使用验证码测试来区分人类和机器人。

捕获大多数“自动”请求的唯一方法是在逻辑中编写代码,以发现浏览器不可能是人类的活动

例如,点击页面太快,填写表单太快,html文件中有一个外部源(如通过php文件的假css文件),并检查请求IP是否已在站点的前一阶段下载(有点像反向蜜罐),但您需要排除某些IP/用户代理被阻止,否则您将阻止google的Webspider。等等

如果curl(或任何其他自动脚本)将其头伪造成浏览器的样子,这可能是唯一的方法