架构师_程序员_码农网

ユーザー名 パスワード取得
会員登録

QQ登录

ワンステップ

検索
閲覧:19343|返信: 2
打印 上一主题 下一主题

[セキュリティの脆弱性】"Content-Security-Policy "ヘッダの欠落または安全でない脆弱性

[コピーリンク]
への直接リフト跳转到指定楼层
オーナー
HTTPレスポンスヘッダContent-Security-Policyは、サイトが与えられたページのどのリソースがユーザーエージェントによってロードされるかを制御することを可能にします。特別な場合を除いて、ポリシーセットは主にサーバのソースとスクリプトのエンドポイントを指定します。これは、クロスサイトスクリプト攻撃(Cross-Site Script)を阻止するのに役立ちます。

ドキュメント: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy

この記事では、W3CのContent Security Policy、略してCSPについて説明します。 その名の通り、この仕様はコンテンツセキュリティに関連するもので、主にXSSの発生を抑えるためにページで読み込めるリソースを定義するために使用されます。

初期のChromeはX-WebKit-CSPレスポンスヘッダを通してCSPをサポートし、firefoxとIEはX-Content-Security-Policyをサポートし、Chrome25とFirefox23は標準のContent-Security-Policyをサポートし始めた。

ユーザ名、パスワード、マシン名、機密ファイルの場所など、ウェブアプリケーションに関する機密情報を収集する可能性があります。
ユーザ名、パスワード、クレジットカード番号、社会保障番号などの機密情報を提供するよう、主要なユーザを説得する可能性があります。


まず、新しいASP.NET MVCプロジェクトを作成し、Baidu Statisticsのjsコードを動的に読み込むための新しいjsスクリプトを以下のように作成します:




上記のように、サードパーティ(百度)のJSスクリプトコードが正常に導入されていることがわかります。 サードパーティのjsには、クッキーを盗む、コンテンツを変更する、リンクをジャンプするなどの悪意のあるコードがあるとします。

安全でないサードパーティのjsスクリプトの導入を止めるには?

解決方法

レスポンスヘッダに "Content-Security-Policy "を追加する:

Content-Security-Policy: default-src 'self' http://example.com;
connect-src 'none';
Content-Security-Policy: connect-src http://example.com/; script-src http://example.com/;
script-src http://example.com/

ディレクティブ
コマンド値の例
説明
デフォルトsrc
'self' cnd.a.com
すべての種類のリソース (js, image, css, web font, ajax request, iframe, multimedia など) のデフォルトの読み込みポリシーを定義します。
script-src
'self' js.
JavaScriptの読み込みポリシーを定義します。
style-src
'self' css.a.com
スタイルの読み込みポリシーを定義します。
img-src
'self' img.a.com
画像の読み込みポリシーを定義します。
connect-src
'self'
Ajax、WebSocketなどのリクエストに対する読み込みポリシー。許可されていない場合、ブラウザはステータス400の応答をシミュレートする。
font-src
font.a.com
WebFontのロードポリシー。
オブジェクト-src
'self'
<object>、<embed>、<applet>などのタグによって導入されるフラッシュなどのプラグインの読み込みポリシー。
メディア-src
メディア
<audio> や <video> などのタグによって導入される HTML マルチメディアの読み込みポリシー。
フレーム・ソース
'self'
フレーム用の読み込みポリシー。
サンドボックス
許可フォーム
要求されたリソースのサンドボックスを有効にします(iframeのサンドボックス属性に似ています)。
report-uri
/report-uri
要求されたリソースがポリシーによって許可されていない場合、ログメッセージを送信する場所をブラウザに伝えます。 特別: ブラウザにログだけを報告させ、コンテンツをブロックさせたくない場合は、代わりに Content-Security-Policy-Report-Only ヘッダを使うことができます。

プロジェクトのweb.configファイルを修正して、カスタム・レスポンス・ヘッダを以下のように追加しましょう:

以下のようにプロジェクトを再実行する:



ブラウザがサードパーティのjsスクリプトの読み込みをブロックすることに成功しました:

スクリプト 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319' は以下のコンテンツセキュリティに違反するため、読み込みを拒否しました。ポリシーディレクティブ: "script-src 'self' http://localhost:56888/ ". script-src-elem'が明示的に設定されていないため、'script-src'がフォールバックとして使用されていることに注意してください。
(終わり)




前の記事:ASP.NET MVC HttpApplicationの実行順序について
次の記事:今人気のブラウザUser-Agentまとめ
コードファーマーは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
シゲシトウ1987
发表于2021-12-17 22:38:43只看该作者
を学ぶ!!!!!!马红军
コード農民ネットワークは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
をベンチ
发表于2022-10-18 17:16:34|只看该作者
私は学ぶために長い時間を探してきた
コード農家ネットワークは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
投稿するにはログインが必要です ログイン会員登録

このバージョンのインテグラルルール


免責事項:Code Farmerによって公開されたすべてのソフトウェア、プログラミング教材や記事は、学習と研究の目的のみに使用するために制限されています。上記のコンテンツは、商業的または違法な目的のために使用してはならない、そうでなければ、すべての結果は、ユーザー自身が負担するものとします。本サイトはネットワークからの情報であり、著作権紛争は本サイトとは関係ありません。上記のコンテンツはダウンロード後24時間以内にコンピュータから完全に削除する必要があります。もしあなたがこのプログラムを気に入ったなら、正規のソフトウェアをサポートし、登録を購入し、より良い正規のサービスを受けてください。もし著作権侵害があれば、メールでご連絡ください。

メール To:help@itsvse.com

QQ|( 鲁ICP备14021824 号-2)|サイトマップ

GMT+8, 2024-9-19 01:40

クイック返信トップに戻る一覧に戻る