Ubah suai respons HTTP dalam sambungan Chrome
P粉038161873
P粉038161873 2023-08-21 23:44:53
0
2
561

Adakah mungkin untuk membuat sambungan Chrome yang boleh mengubah suai badan respons HTTP?

Saya telah melihat API sambungan Chrome dan tidak menemui apa-apa yang akan melaksanakan fungsi ini.

P粉038161873
P粉038161873

membalas semua (2)
P粉311464935

Saya baru sahaja mengeluarkan sambungan Devtools yang melakukan perkara itu :)

Ia dipanggil tamper, berdasarkanmitmproxy, dan ia membolehkan anda melihat semua permintaan yang dibuat oleh tab semasa, mengubah suainya dan menyampaikan versi yang diubah suai pada muat semula seterusnya.

Ini adalah versi yang agak awal tetapi harus serasi dengan OS X dan Windows. Jika ia tidak berkesan untuk anda, sila beritahu saya.

Anda boleh mendapatkannya di sini:http://dutzi.github.io/tamper/

Cara ia berfungsi

Seperti komen @Xan di bawah, sambungan berkomunikasi melalui pemesejan asli dengan skrip Python yang memanjangkanmitmproxy.

Sambungan ini menggunakanchrome.devtools.network.onRequestFinisheduntuk menyenaraikan semua permintaan.

Apabila anda menekan salah satu permintaan, ia memuat turun responsnya menggunakan kaedahgetContent()objek permintaan dan kemudian menghantar respons itu kepada skrip Python yang disimpan secara setempat.

Ia kemudian membuka fail dalam editor menggunakancall(对于OSX)或subprocess.Popen(untuk Windows).

Skrip Python menggunakan mitmproxy untuk mendengar semua komunikasi yang melalui proksi dan jika ia mengesan permintaan untuk fail yang disimpan, ia akan menyampaikan fail yang disimpan.

Saya menggunakan API proksi Chrome (khususnyachrome.proxy.settings.set()) untuk menetapkan PAC sebagai tetapan proksi. Fail PAC ini mengubah hala semua komunikasi ke proksi skrip Python.

Perkara terbaik tentang mitmproxy ialah ia juga boleh mengubah suai komunikasi HTTPS. So boleh pakai juga :)

    P粉561323975

    Secara amnya, andatidak bolehmenukar badan respons permintaan HTTP menggunakan API sambungan Chrome standard.

    Ciri ini sedang diminta pada104058: API WebRequest: Benarkan sambungan untuk mengedit badan respons. Tandai halaman soalan ini untuk mendapatkan pemberitahuan tentang kemas kini.

    Jika anda ingin mengedit badan responsXMLHttpRequestyang diketahui, sila hantar skrip kandunganInject kodXMLHttpRequest的响应体,请通过内容脚本注入代码,以覆盖默认的XMLHttpRequest构造函数,使用自定义(功能完整的)构造函数在触发真实事件之前重写响应体。确保您的XMLHttpRequest对象与Chrome内置的XMLHttpRequestuntuk mengatasi pembinaXMLHttpRequestlalai dan gunakan pembina tersuai (ciri-lengkap) Fungsi menulis semula badan tindak balas sebelum mencetuskan peristiwa sebenar. Pastikan objek XMLHttpRequest anda serasi sepenuhnya dengan objekXMLHttpRequestChrome terbina dalam, jika tidak, ia akan menyebabkan masalah pada tapak web yang berat AJAX.

    Dalam kes lain, anda boleh menggunakanchrome.webRequestchrome.webRequestchrome.declarativeWebRequestAPI将请求重定向到data:-URI。与XHR方法不同,您将无法获取原始请求的内容。实际上,请求永远不会到达服务器,因为重定向只能在实际请求发送之前完成。如果您重定向main_frame请求,用户将看到data:atauchrome.declarativeWebRequest

    API mengubah hala permintaan ke data:-URI. Tidak seperti kaedah XHR, anda tidak akan dapat mendapatkan kandungan permintaan asal. Malah, permintaan itu tidak pernah sampai ke pelayan kerana ubah hala hanya boleh diselesaikan sebelum permintaan sebenar dihantar. Jika anda mengubah hala permintaan main_frame, pengguna akan melihat data:-URI dan bukannya URL yang diminta.
      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!