2014年5月30日 星期五

[ASP.NET] a potentially dangerous request.form value was detected from the client

說明:ASP.NET 4.0,另開新視窗時,出現錯誤訊息:a potentially dangerous request.form value was detected from the client,是避免XSS (Cross-site scripting)攻擊(一種夾帶script語法到網頁的方式)的訊息,所以偵測到post <或>字元,就會出現此訊息。


解決方法:
1.在web.config的<system.web></system.web>標籤中加上 <httpRuntime requestValidationMode="2.0" />與<pages validateRequest="false" />,因為ASP.NET 2.0 request validation的順序會在request processing events之後,若限個別pages,可在各pages加上<@ Page validateRequest="false" %>,但此方法不推薦。

2. 使用HttpUtility.HtmlEncode (Server.HtmlEncode)或AntiXss.HtmlEncode (import AntiXssLibrary.dll),會將特殊字元編碼HTML字元集,如<換為&lt;,"換為&quot;,供HTML正常輸出。



參考資料:
http://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from-the-client
http://www.asp.net/whitepapers/aspnet4/breaking-changes
http://msdn.microsoft.com/en-us/library/hh882339.aspx
http://msdn.microsoft.com/en-us/library/aa973813.aspx
http://msdn.microsoft.com/en-us/library/ms998274.aspx
http://www.dotblogs.com.tw/johnny/archive/2010/03/01/13829.aspx
http://www.dotblogs.com.tw/coca/archive/2011/03/11/21794.aspx
http://blog.darkthread.net/post-2008-06-18-eval-xss.aspx



沒有留言:

張貼留言