这块 网上挺多,一直没有找到比较好的解决方案,求大神
个人临时解决办法:个人写的一个正则
return str.replace(/<script/g, "<script").replace(/script>/g, 'script>').replace(/<img/g, "<img").replace(/<script.*>.*<\/script.*>/g, "").replace(/on(error|mousewheel|mouseover|click|load|onload|submit|focus|blur|start)=[^"]*/g, "");
富文本显示,过滤script,过滤onerror
这个有个问题就是js过滤不了了
还是求一个最终解决办法
var chars={
char: function (str, reg) {
return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g, function (a, b) {
if (b) {
return a;
} else {
return {
'<':'<',
'&':'&',
'"':'"',
'>':'>',
"'":'''
}[a]
}
}) : '';
},
html:function (str) {
return str ? str.replace(/&((g|l|quo)t|amp|#39);/g, function (m) {
return {
'<':'<',
'&':'&',
'"':'"',
'>':'>',
''':"'"
}[m]
}) : '';
}
};
调用chars.char("..................");
还原chars.html("..................");
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
你需要这个屌屌的XSS过滤模块:http://jsxss.com/zh/index.html
在线演示:http://jsxss.com/zh/try.html
简单使用方法:
在页面中引入文件
http://rawgit.com/leizongmin/js-xss/master/dist/xss.js
另外这个XSS过滤模块支持白名单过滤配置,你可以定制适合自己场景的过滤规则。