1
爲了避免通過輸入字段進行腳本注入,我在我的控制器操作中將ValidateInputAttribute
設置爲false。在我看來,我使用<%:
而不是<%=
。避免在輸入字段中注入腳本
我想知道的是,除了上面還有更通用的方法嗎?
爲了避免通過輸入字段進行腳本注入,我在我的控制器操作中將ValidateInputAttribute
設置爲false。在我看來,我使用<%:
而不是<%=
。避免在輸入字段中注入腳本
我想知道的是,除了上面還有更通用的方法嗎?
要通過輸入字段避免腳本注入,我設置 ValidateInputAttribute假
這恰好有你正在試圖達到什麼樣的效果相反。它允許腳本注入。當您將其設置爲false時,基本上會禁用請求值的驗證。
而在我的意見,我使用的<%:而不是<%=
這在視圖中顯示時是正確的方式HTML編碼的所有數據。當然,如果您使用HTML助手(如Html.DisplayFor或Html.EditorFor,您不需要使用<%:
,因爲這些助手已經負責正確編碼輸出)。
但是,如果您將ValidateInputAttribute設置爲true,那麼您將得到異常:從客戶端檢測到潛在危險的Request.Form值。那就是,我不想要的。我只是想阻止執行潛在的腳本 – Djave 2013-04-05 13:51:07
是的,這很正常。 ASP.NET顯式不允許發佈這些字符,因爲它們可用於XSS注入。當然,如果你正確地對輸出進行HTML編碼,你可以安全地禁用這個驗證。 – 2013-04-05 13:54:02
謝謝,但這是正確的方式,我在做什麼?現在我有數百個視圖,我必須用<%:替換<%=。有沒有另一種方式來做到這一點更通用? – Djave 2013-04-05 14:06:28