GM xmlhttpRequest
どういう仕組み?
GPT-4.icon
CSPはウェブサイトがどのリソースを読み込むことができるかを制御するために設計されたものですが、GM_xmlhttpRequest(Tampermonkeyの場合は GM_xmlhttpRequest または GM_xmlHttpRequest と表記されることもあります)は以下の仕組みでCSPを回避します:
1. **ブラウザのセキュリティモデルをバイパス:** 通常の XMLHttpRequest は、ページがロードされた元のドメインに対してのみリクエストを送信することが許可されています(同源ポリシー)。さらに、CSPは特定のドメインからのスクリプトの読み込みやスタイルシート、画像などを制限します。しかし、GM_xmlhttpRequestはユーザースクリプトマネージャーによって提供される特別な方法を使用し、これらのポリシーに拘束されずにリクエストを行うことができます。
全然説明位になってないじゃないかmrsekut.icon
2. **バックグラウンドでの実行:** GM_xmlhttpRequestは、ユーザースクリプトのコンテキストではなく、Tampermonkey自体のバックグラウンドページ(またはサービスワーカー)からリクエストを発行します。このため、実行中のページのCSPの影響を受けません。
このようにして、Tampermonkeyを利用するスクリプトは、ページのCSP設定に関わらず、外部サーバーへ自由にデータを送受信することが可能になります。これにより、APIを叩いたり、外部コンテンツを読み込んだりする際に、より幅広い操作が行えるようになります。