私たちのサイトは現在クリックジャックから安全ではないので、web.configにアクセスして追加しました
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
</customHeaders>
</httpProtocol>
</system.webServer>
これは非常に単純なコードです。私の問題は、機能していないだけです私が持っている質問は:
X-Frame-Options
がヘッダー応答にあるかどうかを確認する方法はありますか?私はhttpfoxでそれを探しましたが、何も得られなかったので、web.config
が実際にヘッダーに入れているかどうかを確認できません。Application_Start
メソッドのGlobal.asaxに追加しようとしましたが、デバッグ時にこのメソッドを「ヒット」することはできません。ブレークポイントにはヒットしません。
private void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
HttpContext.Current.Response.AddHeader("x-frame-options", "DENY");
LogHelper.Info("Cost of Care Web Application Starting");
}
私はそれをヘッドタグにまっすぐに追加しようとしたことを追加したいと思います、そして私はそうのようなメタタグにそれを追加しようとしました
<meta http-equiv="X-Frame-Options" content="deny">
私のコメントが質問に答えたので、ここに最終結果があります:
何らかの理由でX-Frame-Options
web.configのドキュメントは、ドキュメントの説明どおりに動作しているように見えても、実際には機能していないようです。
簡単な回避策は、次を使用してヘッダーを手動で設定することです。
Response.AddHeader("X-Frame-Options", "DENY");
例外なしですべてのリクエストにこのセットが必要な場合は、Application_BeginRequest
to Global.asax:
protected void Application_BeginRequest()
{
Response.AddHeader("X-Frame-Options", "DENY");
}
X-Frame-Optionsヘッダーを使用して、ページをIFRAMEに配置できるかどうかを制御できます。 Framesniffing技術は、被害者のサイトをIFRAMEに配置できることに依存しているため、Webアプリケーションは適切なX-Frame-Optionsヘッダーを送信することで自身を保護できます。
特定のサイトのすべての応答にX-Frame-Optionsヘッダーを追加するようにIISを構成するには、次の手順に従います。
ヘッダーがここで2回生成されるため、siva.k
の答えはMVC5に関連して機能しません。次のコードが機能するはずです。
protected void Application_Start()
{
// MVC5 generates the "X-Frame-Options SAMEORIGIN" header by default, the following line disables the default behaviour
System.Web.Helpers.AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
}
protected void Application_BeginRequest()
{
Response.AddHeader("X-Frame-Options", "DENY");
}
SuppressXFrameOptionsHeader
フラグはここで言及されました: https://stackoverflow.com/a/20262211/393644
考慮すべきもう1つの事項を次に示します。
RESTベースのサイトで非常に一般的です)別のバックエンドプロジェクトとUIプロジェクトがある場合、UI web.configにX-Frame-Optionsを必ず配置してください。おそらくクロスサイトコールを許可しているため、APIプロジェクトにヘッダーを追加しても意味がありません。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="default-src: https:; frame-ancestors 'self' X-Frame-Options: SAMEORIGIN" />
</customHeaders>
</httpProtocol>
</system.webServer>
以前に減価償却されていなかった現在のコーディングを利用するには、web.configエントリがコンテンツセキュリティポリシーの下にある必要があります。コンテンツセキュリティポリシーのvalue="default-src: https:
の値は、Webサイトに固有です。
重要なコンテンツは「value = "default-src:https:」の後にありますが、最も重要なのはコンテンツセキュリティポリシーに含まれています。
一部のファイルの種類(.aspおよび.htmファイル)がこのメカニズムによって追加されたX-Frame-Optionsヘッダーを取得しており、他の種類(.js)は取得していないことがわかりました。 IIS Adminユーティリティを使用して、アプリケーションレベルからヘッダーを削除し、サーバーレベルで追加すると、すべてのファイルにヘッダーが追加されました。