ブラウザ API 操作による Chrome 拡張機能の X-Frame-Options DENY の回避
多くの Web サイトは、X-Frame-Options ヘッダーを使用して、コンテンツが iframe 内に埋め込まれないようにします。これは、リンクされたコンテンツをインラインで表示するために iframe に依存する Intab のような Chrome 拡張機能にとって課題となります。
この問題に対処するために、拡張機能は Chrome が提供する webRequest API を利用して HTTP リクエストを傍受し、変更できます。サブフレーム (iframe) をターゲットにし、X-Frame-Options ヘッダーを削除することで、拡張機能はこの制限を回避できます。
これを実現する方法を示すコード スニペットは次のとおりです。
chrome.webRequest.onHeadersReceived.addListener( function(info) { // Remove the X-Frame-Options header for (var i = info.responseHeaders.length - 1; i >= 0; --i) { if (info.responseHeaders[i].name.toLowerCase() === 'x-frame-options' || info.responseHeaders[i].name.toLowerCase() === 'frame-options') { info.responseHeaders.splice(i, 1); } } // Return the modified headers return { responseHeaders: info.responseHeaders }; }, { // Intercept all subframes urls: ['*://*/*'], types: ['sub_frame'] }, [ 'blocking', 'responseHeaders', // Extra headers are required for modern Chrome versions chrome.webRequest.OnHeadersReceivedOptions.EXTRA_HEADERS ].filter(Boolean) );
有効にするにはこの機能を使用するには、拡張機能のマニフェストで、拡張機能がインターセプトする URL とともに webRequest および webRequestBlocking 権限を宣言する必要があります (例:すべての URL の場合は「:///*」)。
以上がChrome 拡張機能は、webRequest API を使用して X-Frame-Options DENY をバイパスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。