2

私のビューでは、jQuery$.ajax呼び出しによって呼び出されている基本的なJsonResultメソッドがあります。

    [AcceptVerbs(HttpVerbs.Post)]
    public JsonResult DoWork(string param1)
    {
        // do something important 

        return Json();
    }

だから私の質問は、このメソッドが呼び出され/ハッキングされて誤ったデータが渡される可能性があるかどうかです。システム内に新しいユーザーを作成することだったとしましょう。このメソッドの呼び出しを偽造できますか?ある種の偽造防止トークンなどを使用して、このメソッドをどのように保護する必要がありますか?

4

2 に答える 2

4

はい、保護する必要があります。誰でもこのメソッドを呼び出して、必要な値を渡すことができます。受け取ったデータは常に信用しないでください。

もちろん、Authorize-attributeを使用して保護することもできます。

[Authorize(Roles='...')]

または、他の方法を使用してユーザーを識別および承認します。

編集:

以前のリンクはもう機能していませんでした。Ajaxの偽造防止トークンの詳細については、次のSO質問を確認してください:jQuery Ajax呼び出しとHtml.AntiForgeryToken()

私はこれをテストしていません。

于 2010-02-24T15:19:50.530 に答える
1

はい。このメソッドは、他のパブリックコントローラーアクションと同じように呼び出すことができます。

于 2010-02-24T15:16:59.157 に答える