V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
owltacklejaguar
V2EX  ›  程序员

遇到一个浏览器插件的问题,请大佬解答

  •  
  •   owltacklejaguar · 2 天前 · 838 次点击

    问题描述:

    • 最近在开发一个浏览器插件,遇到了一个暂时无法解决的问题。

    场景如下:

    • 我需要从网站 A 的接口获取部分数据(包括请求头信息),并在插件中处理后,将数据发送给网站 B 的接口。

    • 网站 A 和 B 是两个独立域名,B 接口对请求有严格校验。

    目前进展:

    • 已成功通过插件获取 B 接口数据及其 header (包括 cookie ) Token 可以手动构造。

    • 需要将处理后的数据通过插件发起请求提交给 B 接口。

    问题难点:

    • B 接口校验非常严格,必须包含 Referer 、Origin 和 Token 三个参数,缺一不可(已手动验证)。

    • 由于浏览器的安全策略,插件中无法设置或伪造 Referer 和 Origin 。

    • 已尝试以下方案,但均返回 403:

    • 使用 iframe 发起隐藏请求;

    • 通过 XMLHttpRequest 或 fetch 发起请求;

    • 手动构造 header 设置 Referer/Origin ,但浏览器直接拦截。

    请求帮助:

    • 请教各位大佬们有没有什么思路或方法,可以在浏览器插件中绕过这些限制,可以向 B 接口发起含有真实 Referer 和 Origin 的请求?
    第 1 条附言  ·  2 天前
    问题已解决,感谢 2 楼
    6 条回复    2025-06-18 22:39:38 +08:00
    vincentWdp
        1
    vincentWdp  
       2 天前
    主流的浏览器都有这些限制的, 在浏览器里干不了这个.
    可以尝试插件把数据发给后端, 后端再把数据发给 B.
    maplezzz
        2
    maplezzz  
       2 天前   ❤️ 3
    是在 background 里发起的请求吗,试试 declarativeNetRequest 定义规则,应该是可以修改 Origin 的
    owltacklejaguar
        3
    owltacklejaguar  
    OP
       2 天前
    @vincentWdp #1 好的,同事也想到了这个办法,不过无法联网,没有后端环境暂时搁置了
    owltacklejaguar
        4
    owltacklejaguar  
    OP
       2 天前
    @maplezzz #2 好的,我尝试一下
    owltacklejaguar
        5
    owltacklejaguar  
    OP
       2 天前
    @maplezzz #2 感谢,成功解决
    macaodoll
        6
    macaodoll  
       1 天前
    暴力猴啊,不一定非要高插件啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:14 · PVG 19:14 · LAX 04:14 · JFK 07:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.