84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
HTTP 応答本文を変更できる Chrome 拡張機能を作成することはできますか?
Chrome 拡張機能 API を調べましたが、この機能を実装するものは見つかりませんでした。
私はまさにそれを行う Devtools 拡張機能をリリースしました :)
これはmitmproxyに基づいたタンパーと呼ばれ、現在のタブで行われたすべてのリクエストを表示し、変更し、次回の更新時に変更されたバージョンを提供することができます。
これはかなり初期のバージョンですが、OS X および Windows と互換性があるはずです。うまくいかない場合は、お知らせください。
ここから入手できます:http://dutzi.github.io/tamper/
動作原理
以下の @Xan のコメントにあるように、拡張機能はmitmproxyを拡張する Python スクリプトとネイティブ メッセージングを介して通信します。
この拡張機能は、chrome.devtools.network.onRequestFinishedを使用してすべてのリクエストをリストします。
chrome.devtools.network.onRequestFinished
いずれかのリクエストがヒットすると、リクエスト オブジェクトのgetContent()メソッドを使用してその応答がダウンロードされ、その応答がローカルに保存された Python スクリプトに送信されます。
getContent()
次に、call(OSX の場合) またはsubprocess.Popen(Windows の場合) を使用して、エディターでファイルを開きます。
call
subprocess.Popen
Python スクリプトは mitmproxy を使用してプロキシを経由するすべての通信をリッスンし、保存されたファイルのリクエストを検出すると、保存されたファイルを提供します。
Chrome のプロキシ API (具体的にはchrome.proxy.settings.set()) を使用して、PAC をプロキシ設定に設定しました。この PAC ファイルは、すべてのトラフィックを Python スクリプトのプロキシにリダイレクトします。
chrome.proxy.settings.set()
mitmproxy の最も優れた点は、HTTPS 通信も変更できることです。だからあなたもそれを使うことができます:)
一般に、標準の Chrome 拡張機能 API を使用してHTTP リクエストの応答本文を変更することはできません。
104058: WebRequest API: 応答本文の拡張編集を許可するでリクエストされています。更新の通知を受け取るには、この質問をブックマークしてください。
XMLHttpRequestの応答本文を編集したい場合は、コンテンツ スクリプトを通じてコードを挿入し、デフォルトのXMLHttpRequestコンストラクターをオーバーライドしてください。カスタム 実際のイベントを起動する前に応答本文をオーバーライドする (完全に機能する) コンストラクターを定義します。 XMLHttpRequest オブジェクトが Chrome の組み込みXMLHttpRequestオブジェクトと完全な互換性があることを確認してください。そうでない場合、AJAX を多用する Web サイトで問題が発生します。
の応答本文を編集したい場合は、コンテンツ スクリプト
コンストラクターをオーバーライドしてください。カスタム 実際のイベントを起動する前に応答本文をオーバーライドする (完全に機能する) コンストラクターを定義します。 XMLHttpRequest オブジェクトが Chrome の組み込み
オブジェクトと完全な互換性があることを確認してください。そうでない場合、AJAX を多用する Web サイトで問題が発生します。
chrome.webRequestまたはchrome.declarativeWebRequestAPI を使用してリクエストを ## にリダイレクトできます。 #データ:-URI。 XHR アプローチとは異なり、元のリクエストのコンテンツを取得することはできません。実際、リダイレクトは実際のリクエストが送信される前にのみ完了できるため、リクエストがサーバーに到達することはありません。main_frameリクエストをリダイレクトすると、ユーザーにはリクエストされた URL の代わりにdata:-URI が表示されます。
main_frame
data:
私はまさにそれを行う Devtools 拡張機能をリリースしました :)
これは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 通信も変更できることです。だからあなたもそれを使うことができます:)
一般に、標準の Chrome 拡張機能 API を使用してHTTP リクエストの応答本文を変更することはできません。
この機能は104058: WebRequest API: 応答本文の拡張編集を許可するでリクエストされています。更新の通知を受け取るには、この質問をブックマークしてください。
既知のXMLHttpRequest
他の場合には、の応答本文を編集したい場合は、コンテンツ スクリプト
を通じてコードを挿入し、デフォルトのXMLHttpRequestコンストラクターをオーバーライドしてください。カスタム 実際のイベントを起動する前に応答本文をオーバーライドする (完全に機能する) コンストラクターを定義します。 XMLHttpRequest オブジェクトが Chrome の組み込み
XMLHttpRequestオブジェクトと完全な互換性があることを確認してください。そうでない場合、AJAX を多用する Web サイトで問題が発生します。
chrome.webRequest
またはchrome.declarativeWebRequest
API を使用してリクエストを ## にリダイレクトできます。 #データ:-URI。 XHR アプローチとは異なり、元のリクエストのコンテンツを取得することはできません。実際、リダイレクトは実際のリクエストが送信される前にのみ完了できるため、リクエストがサーバーに到達することはありません。
main_frame
リクエストをリダイレクトすると、ユーザーにはリクエストされた URL の代わりにdata:
-URI が表示されます。