使用ueditor往数据库添加文本内容时,如果字体有css样式, <,>," 这些字符会导致报出异常信息:从客户端中检测到有潜在危险的 request.form值
因为这些字符有可能会被XSS跨站脚本攻击,所以vs会报出异常,解决这个问题的办法就是把这些html标记字符替换为html文本字符。
网上有些方法是关闭网站的检测,我认为这是不安全的方法。
下面说一下如果替换这些字符:
<script>
var ue = UE.getEditor('container'); $(function () {
$('#form').submit(function () {
var content = ue.getContent();
//content = content.replace(/</g, '<').replace(/"/g, '"').replace(/>/g, '>').replace(/'/g,'');
content = UE.utils.unhtml(content);
content = content.replace(/'/g,'');
$('#Content').val(content);
});
})
</script>
结合之前文章说过的Jquery替换字符串方法,
解决“从客户端中检测到有潜在危险的 request.form值”:
1、通过content = content.replace(/</g, '<').replace(/"/g, '"').replace(/>/g, '>');
这是自己手动替换。
2、通过content = UE.utils.unhtml(content);
这是ueditor提供的方法,其实源码与方法一是一样的。
即可把<、"、>替换为html文本。
解决ueditor的微软雅黑报出异常“从客户端中检测到有潜在危险的 request.form值”
不知道为什么,ueditor的字体改为微软雅黑后,html文本会变为style="font-family: 微软雅黑, 'Microsoft YaHei';"
看到源码中,'表示单引号,但我发现是单引号是没有用的,所以我也直接替换为空,就没有报错了。