簡體   English   中英

禁用動作參數的XSS驗證(ValidateInput)

[英]Disable xss validation (ValidateInput) of action parameters

鑒於以下控制器和操作:

    public class CommentsController: AsyncController
    {
            [HttpPost, ValidateAntiForgeryToken, ValidateInput(false)]
            public ActionResult AddComment(string subject, string text) {..}
    }

當控制器接收到帶有encodeURIComponent("<>")數據的ajax請求時:

    Content-Type:application/x-www-form-urlencoded

    subject=hello&text=%3C%3E

然后正確設置了主題,但文本始終為空。
這是為什么?

代替使用ValidateInput=false ,嘗試將AllowHtml屬性附加到輸入屬性。 它僅可附加到屬性,因此您需要為輸入參數創建POCO模型(順便說一句,在您的情況下,最好使用一個模型,例如,包括其他驗證屬性)。 例:

public class CommentModel 
{
    public string Subject { get; set; }

    [AllowHtml]
    public string Text { get; set; }
}

[HttpPost, ValidateAntiForgeryToken]
public ActionResult AddComment(CommentModel model) ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM