2012-12-27 28 views
14

私たちは.NET C#MVCアプリケーションを用意しています。現在、これらのフォームと対話する必要があるASP Classic vbscriptページもありますが、通常の投稿を使用すると、__RequestVerificationTokenが設定されていないとのエラーが表示されます。__RequestVerificationTokenの使用方法は?

したがって、ページを要求してから、隠れた入力からのトークンと変数を変数に格納し、POSTリクエストでlongを送信します。そして、それは動作します。

しかし、それをバイパスすることはとても簡単ですが、とにかくそれを使うのは何ですか?いかなる保護もほとんど提供しません。

答えて

12

これは反偽造トークンです(CSRF攻撃を防止します)。これは、ポスターがフォームを取得したものであることを保証します。

これは、誰もリンクを偽造し、パワーユーザーによってアクティブにすることを防止します。

+0

はい、それはGETリクエストで機能します。それで、そのようなものを用意して、イメージのようなリンクを隠すことはできません。しかし、これはPOSTリクエストであるため、攻撃者は単にフォームのどこかでリンクを使用することはできません。彼はjavascriptや彼が制御できる通常の形が必要です。また、そのユーザーがアクセスできる場合は、ユーザーの代わりにトークンを要求して使用することもできます。 –

+2

@HugoDelsing:[this]を読んで(http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/)我々はValidateAntiForgeryTokenAttributeがどのように機能するかを学んでください。しかし、認証なしのimho(それは認可フィルタです)では、あなたの投稿を指すようにトークンは無意味です。認証は、攻撃者が有効なトークンを取得するのを防ぎます。 – tschmit007

関連する問題