Chrome 拡張機能の webRequest API を使用して X-Frame-Options DENY を克服する
Chrome 拡張機能の開発において、開発者は Web サイトでのX-Frame-Options ヘッダーを実装して、コンテンツが iframe 内に埋め込まれないようにします。この制限は、ユーザーがインラインでリンクを表示できるようにすることを目的とした Intab などの拡張機能にとって障壁となります。
幸いなことに、Chrome の webRequest API を活用するソリューションがあります。この API は、ヘッダーと応答データの両方を含む、インターセプトされた HTTP リクエストへのアクセスを提供します。これらのリクエストをインターセプトすることで、X-Frame-Options ヘッダーを操作してインライン化を許可できます。
Chrome 拡張機能でこの回避策を実装する方法は次のとおりです。
webRequest API の onHeadersReceived を使用してヘッダーを変更するリスナー:
chrome.webRequest.onHeadersReceived.addListener( (info) => { // Remove the X-Frame-Options header for (let i = info.responseHeaders.length - 1; i >= 0; i--) { const header = info.responseHeaders[i].name.toLowerCase(); if (header === 'x-frame-options' || header === 'frame-options') { info.responseHeaders.splice(i, 1); } } return {responseHeaders: info.responseHeaders}; }, { urls: [ '*://*/*', // Pattern for all HTTP(S) pages ], types: ['sub_frame'], }, ['blocking', 'responseHeaders'] );
マニフェスト ファイルで権限を宣言:
<permissions> <permission>webRequest</permission> <permission>webRequestBlocking</permission> </permissions>
この手法を利用することで、Chrome 拡張機能は X-Frame-Options の DENY 制限を回避し、ユーザーにシームレスなインライン サービスを提供できます。以前は許可されていなかった Web サイトの表示エクスペリエンス。
以上がChrome 拡張機能はどのようにして X-Frame-Options DENY 制限を回避できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。