具有潛在危險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)
參考或是複製語法時,別忘了留個言喔 ^ ^ ~