コード (asp.net) に CSRF (クロス サイト リクエスト フォージェリ) ガードを実装する必要があります。OWASP からライブラリを入手しましたが、ドキュメントが提供されていないため、それを実装するのは大変です。.net で csrf ガードを実装したり、OWASP ライブラリを正しく構成したりする簡単な方法を教えてもらえますか?
ありがとう
-ちゃんだん
ASP.NET MVC
asp.net mvcを使用している場合は、偽造防止トークンを使用できます。基本的に、あなたの見解では、次のコードを配置します。
@Html.AntiForgeryToken()
そして、コントローラーでは、この属性をコントローラーの上部に配置します。
[ValidateAntiForgeryToken]
public ActionResult Foo()
{
// Foo code
}
これにより、トークンを生成できないため、ユーザーがリモートサイトからフォームを送信できないようになります。ソルトを使用してトークンを作成することもできます。
ASP.NETWebフォーム
asp.net Webフォームの場合、OnInitメソッドをオーバーライドして、ViewStateUserKeyをセッションIDに設定できます。Webフォームは、MACチェックを使用してビューステートを検証するため、偽造防止トークンのように機能します。攻撃者は有効なビューステートを生成できないため(セッションIDをビューステートに入れることができないために有効なMACを生成する機能がないため)、MACは失敗します。各ページでこれを行うか、oninitをすでにオーバーライドしてこれを行う基本クラスを作成する必要があります。
public partial class Default : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.ViewStateUserKey = Session.SessionID;
}
}