アプリケーションで X-Frame-Options ヘッダーの領域固有の動作を作成しようとしています。
次の構造を持つ単一の MVC 5 プロジェクトがあります。
- MVC 構造の「ルート」にある複数の WebApiController
- 2 つの「エリア」 - 1 つはメイン サイト (「アプリ」と呼ばれる) 用で、もう 1 つはブックマークレット (「ブックマークレット」と呼ばれる) 用です。
「アプリ」は私のアプリケーションのメインエリアです。「ブックマークレット」を使用すると、ユーザーがブックマークレットをクリックするたびに (ユーザーがどのサイトにいるかに関係なく)、ページが iFrame に表示されます。
API と「アプリ」領域を X-Frame-Options ヘッダーで保護したいのですが、ブックマークレットにこのヘッダーを含めてはなりません。その目的は、任意の Web サイトの iframe 内に表示することだからです (ユーザーはブックマークレットをクリックします)。 、iframe を開き、現在のページのタイトルと URL を保存するフォームを事前入力します。お気に入りのリンクをアプリケーションに保存する「お気に入りに追加」機能と考えてください)。
現在、Global.asax 内で以下を使用しています。
保護された void Application_Start() { ... AntiForgeryConfig.SuppressXFrameOptionsHeader = true; }
残念ながら、これにより、すべての領域で X-Frame-Options ヘッダーが抑制されます。この動作をアプリケーションのルートや他の領域ではなく、ブックマークレット領域に特に適用する方法はありますか?
X-Frame-Options を開くことに関連するクリックジャッキングのセキュリティ リスクを認識していることに注意してください。サイトの「アプリ」領域内にログイン機能を配置することで、このリスクを軽減しようとしています (X-Frame-Options で保護したい)。したがって、「ブックマークレット」機能 (ユーザーがアクセスしている任意のサイトから開くことができるため、X-Frame-Options で保護することはできません) には、限られたデータ入力のみが含まれます。