2008年9月11日 星期四

ASP.NET 的 XSS 攻擊偵測

伺服器出現:

A potentially dangerous Request.Form value was detected from the client (="...it (Omega<<A)>

Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. ...

的錯誤,起因是因為 ASP.Net 1.1 後導入對提交表單進行自動檢查是否存在 XSS(跨站腳本攻擊)的能力。當 client 端試圖用某些特定符號的輸入影響頁面返回結果時,ASP.NET 引擎會拋出 HttpRequestValidationExceptioin。

最簡單的方式就是加入在 web.confing 中加入 validateRequest="false" 的選項


...
 
 
    

或是在 @Page 中加入 ValidateRequest="false"
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" ValidateRequest="false" %>

當然若應用程式不會受到此類攻擊的話,這是一個可接受的解決方法。

參考

沒有留言: