熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

asp.net中“從客戶端中檢測到有潛在危險的Request.Form值”的錯誤

2013-11-13 10:36:35  來源: .NET編程 

  在提交表單時候aspnet 提示"從客戶端()中檢測到有潛在危險的 RequestForm 值" aspnet中的請求驗證特性提供了某一等級的保護措施防止XSS攻擊aspnet的請求驗證是默認啟動的這個給出各個版本net的解決方法

aspnet 通常解決辦法

方案一

aspx文件中的page項添加ValidateRequest="false" 如下

<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="testaspxcs" Inherits="test" %>

方案二

修改webconfig配置文件

<systemweb>
<pages validateRequest="false" >
</pages>
</systemweb>

總結validateRequest 這句我們知道是關閉驗證也就是說提交帶標簽比如 <strong>粗體</strong> 這樣的值時ASPNET 不會報錯這裡推薦使用方案一因為方案一只修改testaspx這一個頁面而如果使用方案二的話將是整個解決方案都變成ValidateRequest="false"

aspnet 解決辦法

的方法一樣不過要注意的是從 Net Framework 開始aspnet開始強制檢測Request參數安全而我們可以通過修改 Webconfig 來恢復 版本的模式

方法如下

修改Webconfig增加requestValidationMode=""屬性值

<systemweb>
<httpRuntime requestValidationMode="" />
<pages validateRequest="false"></pages>
</systemweb>

中多了一個 requestValidationMode這是什麼意思呢?

requestValidationMode 有兩個值

僅對網頁啟用請求驗證是啟用還是關閉取決於 validateRequest

默認值任何 HTTP 請求都會啟用請求驗證也就是說不光是網頁還包括 Cookie 等此時強制啟用不管 validateRequest 為何值

由於 requestValidationMode="" 是強制啟用所以我們會發現在 NET Framework 中僅靠設置 validateRequest 是關閉不了請求驗證的還得將 requestValidationMode 設置為


From:http://tw.wingwit.com/Article/program/net/201311/14108.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.