类似设置validateRequest="false"的方法不推荐,因为应用程序需要显式检查所有输入,不方便。

1、前端使用encodeHtml函数对字符串进行编码,例:

var editor = $("textarea[name='editorValue']");
$("#contents").val(encodeHtml(editor.val()));
var formData = new FormData($("#frm")[0]);

2、后端使用HtmlUtil.DecodeHtml方法进行解码,例:

model.contents = HtmlUtil.DecodeHtml(model.contents);

3、View页面展示在编辑器中,例:

ue.addListener('ready', function (editor) {
var contents = decodeHtml("@content.contents");
ue.setContent(contents);
});
 JS方法decodeHtml代码:
function encodeHtml(val) {
return val.replace(/&/g, "&")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;");
} function decodeHtml(val) {
return val.replace(/&amp;/g, "&")
.replace(/&lt;/g, "<")
.replace(/&gt;/g, ">")
.replace(/'/g, "'")
.replace(/&quot;/g, "\"");
}

说明:上面的encodeHtml和decodeHtml方法有点绕人,因为这两个方法不对称,encodeHtml方法少了.replace(/'/g, "'").replace(/\"/g, "&quot;")。编码的目的,是为了绕过验证,而导致验证不通过的原因是因为某些html标签,也就是说当字符串中含有<、>、'之类的标识时,就会验证不通过,所以只需把&、<、>这三个替换掉就可以了。如果加上.replace(/'/g, "'").replace(/\"/g, "&quot;"),则又会导致出现$#039;从而导致验证不通过,所以encodeHtml方法只替换3个。但解码多替换了两个,这是必需的,否则<span style="font-size:20px;"></span>在百度编辑器中显示会变成<span></span>从而造成style样式的丢失。

HtmlUtil.DecodeHtml方法代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Common.Utils
{
/// <summary>
/// HTML工具类
/// </summary>
public class HtmlUtil
{
#region html编码
/// <summary>
/// html编码
/// </summary>
public static string EncodeHtml(string html)
{
return html.Replace("&", "&amp;")
.Replace("<", "&lt;")
.Replace(">", "&gt;")
.Replace("'", "'")
.Replace("\"", "&quot;");
}
#endregion #region html解码
/// <summary>
/// html解码
/// </summary>
public static string DecodeHtml(string html)
{
return html.Replace("&amp;", "&")
.Replace("&lt;", "<")
.Replace("&gt;", ">")
.Replace("'", "'")
.Replace("&quot;", "\"");
}
#endregion }
}
												

彻底解决“从客户端中检测到有潜在危险的Request.Form值”的更多相关文章

  1. ueditor 添加微软雅黑字体 异常“从客户端中检测到有潜在危险的 request.form值”,解决

    使用ueditor往数据库添加文本内容时,如果字体有css样式, <,>," 这些字符会导致报出异常信息:从客户端中检测到有潜在危险的 request.form值 因为这些字符有 ...

  2. 从客户端中检测到有潜在危险的 request.form值[解决方法]

    当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错误的几种解决方法:问题原因:由于在asp.net中,Requ ...

  3. 从客户端中检测到有潜在危险的Request.Form值的解决方法

    描述:从客户端中检测到有潜在危险的Request.Form值的解决方法asp.net 2.0 通常解决办法将.aspx文件中的page项添加ValidateRequest="false&qu ...

  4. 从客户端中检测到有潜在危险的Request.Form值 的解决方法

    在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" .asp.net中的请求验证特性提供了某一等级的保护措施防止X ...

  5. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

  6. 从客户端中检测到有潜在危险的Request.Form值的解决办法

    http://www.pageadmin.net/article/20141016/935.html 如果你网站iis服务器asp.net采用了4.0的版本,则默认会阻止客户端的html内容提交,提交 ...

  7. 【异常记录(七)】MVC:从客户端中检测到有潜在危险的 Request.Form 值 的解决方法 [转]

    从客户端(Content="<EM ><STRONG ><U >这是测试这...")中检测到有潜在危险的Request.Form 值. 说明:  ...

  8. 从客户端中检测到有潜在危险的 request.form值 以及 request.querystring[解决方法]

    一.从客户端中检测到有潜在危险的request.form值 当页面编辑或运行提交时,出现“从客户端中检测到有潜在危险的request.form值”问题,该怎么办呢?如下图所示: 下面博主汇总出现这种错 ...

  9. 从客户端中检测到有潜在危险的Request.Form 值

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

随机推荐

  1. 禁用SQL Server Management Studio的IntelliSense

    禁用SQL Server Management Studio的IntelliSense 本文版权归作者所有,未经作者同意不得转载.

  2. Linux堆溢出漏洞利用之unlink

    Linux堆溢出漏洞利用之unlink 作者:走位@阿里聚安全 0 前言 之前我们深入了解了glibc malloc的运行机制(文章链接请看文末▼),下面就让我们开始真正的堆溢出漏洞利用学习吧.说实话 ...

  3. HTML和CSS经典布局2

    如下图: 需求: 1. 如图 2. 可以从body标签开始. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xht ...

  4. Backbone源码分析(二)

    在传统MVC框架模式中,Model承担业务逻辑的任务.Backbone作为一个mvc框架,主要的业务逻辑交由Model与Collection来实现.Model代表领域对象,今天主要学一下Model源码 ...

  5. 高质量,高效率的多国语言软件开发(Web/PC/Mobile),使用接口约束/调用不同语言资源

    偶然间翻出了几年前写的一个小程序,把当时的资料整理整理分享一下. 当时为了给自己的软件实现多国语言功能,而开发的辅助工具:SE String Resource. 这是当时基于自己另一款 IDE 软件抽 ...

  6. 《Entity Framework 6 Recipes》中文翻译系列 (39) ------ 第七章 使用对象服务之配置模型和使用单复数服务

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-3  配置模型 问题 你想了解配置模型中的各种选项. 解决方案 当你添加一个AD ...

  7. 《Entity Framework 6 Recipes》中文翻译系列 (40) ------ 第七章 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读)

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-5  从跟踪器中获取实体 问题 你想创建一个扩展方法,从跟踪器中获取实体,用于数 ...

  8. Git命令汇总

    1. 工作区和版本库 说明: 工作区(Working Directory)就是创建仓库的文件夹 版本库(Repository)就是工作区的隐藏目录.git,版本库中有暂存区(stage/index)和 ...

  9. titit. 深入理解 内聚( Cohesion)原理and  attilax大总结

    atitit. 深入理解 内聚( Cohesion)原理and  attilax大总结         1.1. 内聚的概念 1 1.1.1. 高内聚模式关于这个问题给出的答案是:分配职责,使其可保持 ...

  10. 20个JS优化代码技巧

    原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...