具有潛在危險Request.Form 的值已從用戶端偵測到

具有潛在危險Request.Form 的值已從用戶端偵測到

 

當送出表單的時候發生

具有潛在危險Request.Form 的值已從用戶端偵測到

的錯誤訊息,是因為用戶端在欄位輸入了Html語法,當送出動作後,被判斷為具有淺在危險的程式碼,

這時可以在該頁面加上validateRequest="False"

          <%@ Page Language="VB" AutoEventWireup="false" CodeFile="sys_111.aspx.vb" Inherits="sys_sys_111" validateRequest="False" %>

或是在web.config 設定關閉:

          <system.web>
              <pages validateRequest="False" />
          </system.web>

即可避免資料送出後系統將Html語法判斷為惡意程式碼。

(參考資料:http://www.asp.net/whitepapers/request-validation)

 

但是,如此一來如何避免駭客的惡意攻擊?

可以在輸入欄位(ex:TextBox)加上HttpUtility.HtmlEncode方法,將字串轉換為 HTML 編碼的字串,

再用HttpUtility.HtmlDecode將已經為 HTTP 傳輸而進行 HTML 編碼的字串轉換為解碼的字串,來避免惡意人士的攻擊。

將字串轉換為 HTML 編碼的字串:

Dim myEncodedString As String
      myEncodedString = HttpUtility.HtmlEncode(test1.Text)

 

將已經為 HTTP 傳輸而進行 HTML 編碼的字串轉換為解碼的字串:

Dim myWriter As New StringWriter()
      HttpUtility.HtmlDecode(myEncodedString, myWriter)

 

(參考資料:http://msdn.microsoft.com/zh-tw/library/73z22y6h(v=vs.80).aspx#Y768

                http://msdn.microsoft.com/zh-tw/library/7c5fyk1k(v=vs.80).aspx#Y640)

 

 

參考或是複製語法時,別忘了留個言喔 ^ ^ ~