この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 45075|答える: 7

[ASP.NET] ASP.NET CSRF 攻撃 Ajax 要求カプセル化

[リンクをコピー]
2019年9月12日 09:42:54に投稿 | | | |
CSRFとは何ですか?

CSRF(クロスサイトリクエスト偽造)、またはワンクリック攻撃/セッションライディングとも呼ばれ、中国語の略称:CSRF/XSRF。 CSRF(クロスサイトリクエスト偽造)は、2007年にインターネット上のセキュリティリスクトップ20の一つに挙げられたネットワーク攻撃手法です。 SQLスクリプト注入やクロスサイトドメインスクリプト攻撃などの他のセキュリティリスクも近年よく知られており、多くのウェブサイトがこれらに対して防御を行っています。 しかし、CSRFは多くの人にとってまだ馴染みのない概念です。 最も有名なGmailでさえ、2007年末にCSRFの脆弱性があり、ハッキングされてGmailユーザーに大きな損失をもたらしました。

CSRFは何ができるのでしょうか?

CSRF攻撃はこういう感じで理解できます:攻撃者があなたの身元を盗み、あなたの名前で悪意のあるリクエストを送ってきました。 CSRFはメールの送信、メッセージの送信、アカウントの盗用、さらには商品の購入や仮想通貨の送金などを代わりに行うことができます...... 問題には、個人のプライバシーの漏洩や財産の安全が含まれます。

ASP.NET MVC AntiForgeryToken 偽造防止商標

ASP.NET MVCでは、ビューページで@Html.AntiForgeryToken()が使われると、フォームトークンとクッキートークンがデフォルトで自動的に生成されます。 しかし、バックグラウンドで手動取得を実現したい場合はSystem.Web.Helpers.AntiForgeryクラスを使う必要があり、ソースコードに興味がある友人は、@Html.AntiForgeryToken()の内部呼び出し方法がAntiForgeryクラスと同じであることに気づくでしょう。

主に対応するフォームとクッキートークンを取得するために使われます。2つの静的手法で、AntiForgery.GetHtml()またはAntiForgery.GetTokens(string oldCookieToken, out string newCookieToken, out 文字列 formToken)です。 ただし、GetHtmlメソッドが呼び出されると、対応するクッキートークンが自動的に生成され、その後、トークンのvalue隠しフィールドを含むHTMLコードが直接返され、返される値は次の形式になります。

<input name="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

隠されたフィールドの名前は通常「__RequestVerificationToken」に固定され、その値は暗号化されたセキュリティトークンです。 この隠しフィールドは通常、提出予定のフォームに配置され、最終的な提出はクッキートークンと照合されます。

GetTokensメソッドを使うと、対応するパラメータを入力すれば暗号化フォームとクッキートークンを取得できますが、ここでは対応する値を自分で保存する必要があります。

次に、主にAJAXを通じてAntiForgeryTokenを手動で更新する方法を紹介します。

パッケージコード:



テストコード:



Ajaxリクエストを送信すると、下図のように__RequestVerificationTokenパラメータが自動的に含まれていることがわかりました。







先の:Windows CMD 履歴コマンドのチュートリアルを見る
次に:Azure DevOps を紹介します
 地主| 2019年9月25日 18:09:46 に投稿 |
2019年11月10日 15:06:37に投稿 |
背景治療計画を書かなかったのか? ヘッダー内のバックグラウンド処理は、ヘッダーなしのバックグラウンド処理とは異なります
 地主| 2019年11月21日 10:38:40に投稿 |
Danqingcheng 投稿 2019-11-10 15:06
背景治療計画を書かなかったのか? ヘッダー内のバックグラウンド処理は、ヘッダーなしのバックグラウンド処理とは異なります

うーん、フィルターを書き直さないといけません
 地主| 2021年2月20日 19:22:14に投稿 |
CSRF攻撃を防ぐためにAntiForgeryTokenを用いたmvc ajax
https://www.itsvse.com/thread-4207-1-1.html
2021年12月9日 18:41:29に投稿 |
テストテストテストテストテスト
 地主| 2022年4月17日 12:59:39に投稿 |
 地主| 2024年9月26日 15:57:52に投稿 |
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com