我的日常开发记录日志
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)

我的日常开发记录日志

never give up
首页
  • Laravel
  • Thinkphp
  • Swoole
  • Workman
  • php
  • HTML
  • CSS
  • JavaScript
  • Vue
  • ES6
  • 小程序
  • Mysql
  • Redis
  • Es
  • MongoDb
  • Git
  • Composer
  • Linux
  • Nginx
  • Docker
  • Vpn
  • 开发实战
  • 开发工具类
  • 友情链接
💖关于
💻收藏
  • 分类
  • 标签
  • 归档数据
GitHub (opens new window)
  • laravel

  • thinkphp

  • swoole

  • workman

  • php

    • php
    • phpstorm常用快捷键
    • new关键字和依赖注入对比
    • windows上php多版本存在
    • 封装一个wkhtmltopdf的扩展类
    • 请求第三方接口绕过白名单操作
      • 封装一个基础的openai请求类
      • 封装一个基础的请求第三方类
      • 支付宝支付使用证书方式进行支付的类
      • cookie通俗讲解
      • php-fpm服务的重启
      • guzzle中cookie使用
    • gpt

    • java

    • 后端
    • php
    窝窝侠
    2024-09-19

    请求第三方接口绕过白名单操作

    # 1. 直接修改请求头的 X-Forwarded-For 字段

    某些第三方接口会检查 X-Forwarded-For 请求头来确认请求来源。在这种情况下,你可以尝试修改 X-Forwarded-For 来伪装为其他 IP 地址。

    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, "https://thirdparty.com/api");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    // 设置请求头,伪装IP
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-Forwarded-For: 1.2.3.4', // 伪装的 IP
    ));
    
    $response = curl_exec($ch);
    
    curl_close($ch);
    
    echo $response;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    # X-Forwarded-For 的作用流程

    1. 客户端发出请求:原始请求中不包含 X-Forwarded-For,只包含客户端的 IP 地址。
    2. 代理服务器接收请求:代理服务器或负载均衡器会将客户端的 IP 地址加入 X-Forwarded-For 头字段,表示该请求来自的客户端。
    3. 目标服务器处理请求:目标服务器可以通过 X-Forwarded-For 头字段获知请求的原始 IP 地址(如果服务器配置允许信任代理提供的 X-Forwarded-For 值)。

    # 实际用途

    • IP 记录:帮助服务器识别请求的真实 IP,特别是当请求通过多个代理时。
    • 访问控制:服务器可以根据 X-Forwarded-For 的值来限制访问源,允许或拒绝请求。
    • 绕过 IP 白名单:有时,可以通过伪造 X-Forwarded-For 来欺骗某些服务器,从而绕过其对 IP 地址的限制。

    不过,请注意伪造 X-Forwarded-For 并不总是有效,尤其是在一些严格配置的服务器或防火墙中。

    # 使用 Guzzle 发送 X-Forwarded-For 请求

    
    use GuzzleHttp\Client;
    
    $client = new Client();
    
    // 假设你要请求的目标 URL
    $url = 'https://example.com';
    
    // 设置 X-Forwarded-For 头部
    $response = $client->request('GET', $url, [
        'headers' => [
            'X-Forwarded-For' => '123.45.67.89', // 模拟客户端的 IP 地址
        ],
    ]);
    
    // 输出响应
    echo $response->getBody();
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    在线编辑 (opens new window)
    上次更新: 2025/02/25, 18:30:54
    封装一个wkhtmltopdf的扩展类
    封装一个基础的openai请求类

    ← 封装一个wkhtmltopdf的扩展类 封装一个基础的openai请求类→

    最近更新
    01
    showprocess用法
    04-29
    02
    vue3中尖括号和冒号的使用细则
    04-29
    03
    sd使用
    02-22
    更多文章>
    🖥️

    © 2025窝窝侠 💌 豫ICP备20005263号-2 🛀 Theme by 💝 Vdoing && 小胖墩er

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×