You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用file_get_contents发送HTTP GET请求失败,经BurpSuite代理却成功的原因

file_get_contents请求失败但Burp代理能成功的原因分析

以下是几种常见的原因,结合你的代码逐一排查:

  • URL不完整:你代码里的$url = 'api'是相对路径,而Burp里发送的肯定是完整的绝对URL(比如https://目标域名/api)。PHP的file_get_contents处理相对路径时,会以当前运行脚本的域名/路径为基准,和Burp的请求目标完全不同,自然会失败。

  • 请求头缺失或不一致:虽然你加了User-Agent和Accept,但Burp发送的成功请求里可能还有其他必要头没被你包含,比如Cookie、Referer、Accept-Encoding(gzip压缩)等。有些服务器会严格校验请求头的完整性,缺少就会拒绝服务。另外要注意,PHP的header数组里每个头必须是完整的键值对,不能有多余的换行或空格。

  • HTTP版本、超时等配置差异:

    • 你没指定HTTP版本,PHP默认可能用HTTP/1.0,而Burp默认用HTTP/1.1,部分服务器只支持1.1及以上版本;
    • 代码里没有设置超时时间,PHP默认超时较短,可能请求还没完成就被中断,而Burp的超时设置更长。
  • SSL/TLS握手差异:虽然你关闭了证书验证,但PHP的openssl扩展可能默认不支持服务器要求的TLS版本(比如TLS 1.2或1.3),导致握手失败,而Burp会自动适配服务器支持的TLS版本。

  • URL编码问题:如果目标URL包含特殊字符(比如中文、空格),file_get_contents可能没有自动编码,而Burp会自动处理URL编码,导致请求的资源路径错误。

排查建议

  1. 把$url改成完整的绝对URL,比如https://your-target-domain.com/api;
  2. 在Burp里复制成功请求的所有请求头,全部加到PHP的header数组中;
  3. 在http配置数组中添加:
    'protocol_version' => '1.1',
    'timeout' => 30, // 设置30秒超时
    
  4. 检查PHP的openssl扩展配置,确保支持服务器要求的TLS版本(可以用phpinfo()查看OpenSSL相关信息);
  5. 如果URL有特殊字符,先用urlencode()处理后再请求。

你的代码

$url = 'api';
$options = array(
    'http' => array(
        'method' => 'GET',
        'header' => array(
            'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
            'Accept: */*'
        ),
        'ignore_errors' => true,
        'proxy' => 'tcp://127.0.0.1:8080',
        'request_fulluri' => true,
        'verify_peer' => false,
        'verify_peer_name' => false,
    ),
);

$context = stream_context_create($options);

$response = file_get_contents($url, false, $context);

$headers = implode("\n", $http_response_header);

echo "Response headers:\n" . $headers . "\n";

echo "Response body:\n" . $response . "\n";
?>

内容的提问来源于stack exchange,提问作者d33panshuraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:35:31