检测对外部 PHP 的调用(curl,文件获取内容 ...)
detecting calls to outside PHP (curl, file get contents ...)
是否有一种简单的方法来检测来自 PHP 的所有外部调用?
在一个开源项目中,我有很多第 3 方脚本。通过使用 new relic,我能够调试较长的执行时间,从而导致其中一些脚本调用回他们的服务器。
我不介意这个,但我想知道这个脚本正在发送什么数据,最重要的是,当第 3 方脚本服务器关闭或无法访问时,我不想让网站变慢。
是否有一种简单的方法来记录所有 curl、文件获取内容等请求?
谢谢!
您正在寻找数据包嗅探器。通常你会使用 tcpdump
and/or wireshark
.
有很多解决方案,但我的首选是
您构建自己的代理:例如一个专用的 Apache 服务器(它可以 运行 在同一 IP 但不同端口中处理此类操作)。之后,您将所有旧 URL 更改为通过代理
想象一下,你的代码中有这个:
curl_init('www.google.com');
所以你必须通过以下方式更改它:
curl_init('http://localhost:8090/CALLS_OUTSIDE_PHP_CONTROLLER.php?url_to_redirect=www.google.com');
8090 下的 PHP 控制器 运行 可以做很多操作:blacklist/whitelist 一些 url,定期 URL 在后台检查...很多很酷的东西
是否有一种简单的方法来检测来自 PHP 的所有外部调用? 在一个开源项目中,我有很多第 3 方脚本。通过使用 new relic,我能够调试较长的执行时间,从而导致其中一些脚本调用回他们的服务器。
我不介意这个,但我想知道这个脚本正在发送什么数据,最重要的是,当第 3 方脚本服务器关闭或无法访问时,我不想让网站变慢。
是否有一种简单的方法来记录所有 curl、文件获取内容等请求?
谢谢!
您正在寻找数据包嗅探器。通常你会使用 tcpdump
and/or wireshark
.
有很多解决方案,但我的首选是
您构建自己的代理:例如一个专用的 Apache 服务器(它可以 运行 在同一 IP 但不同端口中处理此类操作)。之后,您将所有旧 URL 更改为通过代理
想象一下,你的代码中有这个:
curl_init('www.google.com');
所以你必须通过以下方式更改它:curl_init('http://localhost:8090/CALLS_OUTSIDE_PHP_CONTROLLER.php?url_to_redirect=www.google.com');
8090 下的 PHP 控制器 运行 可以做很多操作:blacklist/whitelist 一些 url,定期 URL 在后台检查...很多很酷的东西