Ändern Sie die HTTP-Antwort in der Chrome-Erweiterung
P粉038161873
P粉038161873 2023-08-21 23:44:53
0
2
535

Ist es möglich, eine Chrome-Erweiterung zu erstellen, die den HTTP-Antworttext ändern kann?

Ich habe mir die Chrome-Erweiterungs-API angesehen und nichts gefunden, was diese Funktionalität implementieren würde.

P粉038161873
P粉038161873

Antworte allen (2)
P粉311464935

我刚刚发布了一个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通信。所以你也可以使用它:)

    P粉561323975

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

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

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

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

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!