Heim  >  Fragen und Antworten  >  Hauptteil

Ändern Sie die HTTP-Antwort in der Chrome-Erweiterung

<p>Ist es möglich, eine Chrome-Erweiterung zu erstellen, die den HTTP-Antworttext ändern kann? </p> <p>Ich habe mir die Chrome-Erweiterungs-API angesehen und nichts gefunden, was diese Funktionalität implementieren würde. </p>
P粉038161873P粉038161873446 Tage vor623

Antworte allen(2)Ich werde antworten

  • P粉311464935

    P粉3114649352023-08-22 20:54:03

    我刚刚发布了一个Devtools扩展,可以做到这一点:)

    它叫做tamper,基于mitmproxy,它允许你查看当前标签页发出的所有请求,修改它们,并在下次刷新时提供修改后的版本。

    这是一个相当早期的版本,但应该与OS X和Windows兼容。如果对你不起作用,请告诉我。

    你可以在这里获取它:http://dutzi.github.io/tamper/

    工作原理

    正如下面的@Xan评论所说,该扩展通过与扩展了mitmproxy的Python脚本进行本机消息传递来通信。

    该扩展使用chrome.devtools.network.onRequestFinished列出所有请求。

    当你点击其中一个请求时,它使用请求对象的getContent()方法下载其响应,然后将该响应发送给保存在本地的Python脚本。

    然后,它使用call(对于OSX)或subprocess.Popen(对于Windows)在编辑器中打开文件。

    Python脚本使用mitmproxy监听通过该代理进行的所有通信,如果检测到对已保存文件的请求,它将提供已保存的文件。

    我使用了Chrome的代理API(具体来说是chrome.proxy.settings.set())将PAC设置为代理设置。该PAC文件将所有通信重定向到Python脚本的代理。

    mitmproxy最棒的一点是它还可以修改HTTPS通信。所以你也可以使用它:)

    Antwort
    0
  • P粉561323975

    P粉5613239752023-08-22 18:26:03

    一般来说,您无法使用标准的Chrome扩展API更改HTTP请求的响应体。

    此功能正在104058: WebRequest API: 允许扩展编辑响应体上进行请求。收藏该问题以获取更新通知。

    如果您想编辑已知的XMLHttpRequest的响应体,请通过内容脚本注入代码,以覆盖默认的XMLHttpRequest构造函数,使用自定义(功能完整的)构造函数在触发真实事件之前重写响应体。确保您的XMLHttpRequest对象与Chrome内置的XMLHttpRequest对象完全兼容,否则会导致AJAX-heavy网站出现问题。

    在其他情况下,您可以使用chrome.webRequestchrome.declarativeWebRequest API将请求重定向到data:-URI。与XHR方法不同,您将无法获取原始请求的内容。实际上,请求永远不会到达服务器,因为重定向只能在实际请求发送之前完成。如果您重定向main_frame请求,用户将看到data:-URI而不是请求的URL。

    Antwort
    0
  • StornierenAntwort