解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误
在提交表单时候【hòu】🙉,asp.net 提示:"从客户端🥀(......)中检测到有潜在危险🔘的【de】🗳 Request.Form 值" 。asp.net中的【de】🗳请求验【qǐng qiú yàn】⛑证特性提供了某【mǒu】🤸一等级🌐的【de】🗳保护措施防止XSS攻击🥇,asp.net的【de】🗳请求验【qǐng qiú yàn】⛑证是默认启动的【de】🗳。这个给⤴出各个版本.net的【de】解决🏟方法【fāng fǎ】。
asp.net 2.0 通常解决办【jiě jué bàn】法【fǎ】
方案一【fāng àn yī】🐕:
将.aspx文件中【wén jiàn zhōng】🚖的【de】🗳page项添加【xiàng tiān jiā】🐨ValidateRequest="false" ,如下【rú xià】:
<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>
方案二🔒:
修改【xiū gǎi】web.config配置文件📊
<system.web>
<pages validateRequest="false" >
</pages>
</system.web>
总结【zǒng jié】:validateRequest 这句我们知道🌻是关闭验证💎,也就是【yě jiù shì】💂说提交带标签📇,比如🕋 <strong>粗体</strong> 这样【yàng】的【de】🗳值时【zhí shí】😊,ASP.NET 不会报错。这里推🛌荐使用【jiàn shǐ yòng】方案一【fāng àn yī】🐕,因为方【yīn wéi fāng】案一【àn yī】🐕只修改【zhī xiū gǎi】test.aspx这一个😱页面【yè miàn】🧠;而如果🦓使用方案二🔒的【de】🗳话【huà】🔺,将是整🈵个解决方案都👐变成【biàn chéng】ValidateRequest="false" 。
asp.net 4.0 解决办【jiě jué bàn】法【fǎ】
4.0和2.0的【de】🗳方法【fāng fǎ】一样【yàng】,不过要【bú guò yào】注意的【de】🗳是从 .Net Framework 4.0 开始,asp.net开始强【kāi shǐ qiáng】制检测Request参数安😘全🍆,而我们【ér wǒ men】🥍可以通【kě yǐ tōng】过修改【xiū gǎi】 Web.config 来恢复🐸 2.0 版本的【de】🗳模式【mó shì】🐄。
方法如【fāng fǎ rú】下:
修改【xiū gǎi】Web.config,增加requestValidationMode="2.0"属性值
<system.web>
<httpRuntime requestValidationMode="2.0" />
<pages validateRequest="false"></pages>
</system.web>
4.0 中多了一个 requestValidationMode,这是什么意思呢?
requestValidationMode 有两个值:
•2.0仅对网【jǐn duì wǎng】页启用【qǐ yòng】请求验【qǐng qiú yàn】⛑证。是启用【shì qǐ yòng】🌆还是关【hái shì guān】🍆闭取决【bì qǔ jué】于 validateRequest。
•4.0 默认值。任何🌏 HTTP 请求都会启用【qǐ yòng】请求验【qǐng qiú yàn】⛑证,也就是【yě jiù shì】💂说不光😜是网页【shì wǎng yè】,还包括🚂 Cookie 等。此时强制启用【zhì qǐ yòng】,不管 validateRequest 为何值。
由于 requestValidationMode="4.0" 是强制【shì qiáng zhì】启用【qǐ yòng】,所以我们会发【men huì fā】😖现在 .NET Framework 4.0 中仅靠【zhōng jǐn kào】设置 validateRequest 是关闭不了请【bú le qǐng】⚡求验证💎的【de】🗳,还得将【hái dé jiāng】 requestValidationMode 设置为🛩 2.0。
关键词:asp.net
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0