javascript 处理富文本中xss攻击

发布于 2022-09-01 21:33:47 字数 33 浏览 12 评论 0

这块 网上挺多,一直没有找到比较好的解决方案,求大神

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

情深缘浅 2022-09-08 21:33:47

你需要这个屌屌的XSS过滤模块:http://jsxss.com/zh/index.html
在线演示:http://jsxss.com/zh/try.html

简单使用方法:

在页面中引入文件http://rawgit.com/leizongmin/js-xss/master/dist/xss.js

filterXSS('任何HTML代码'); // => 将返回经过滤安全无害的HTML代码

另外这个XSS过滤模块支持白名单过滤配置,你可以定制适合自己场景的过滤规则。

NPM versionnpm download

入怼 2022-09-08 21:33:47

用正则过滤“<“---”>”,把获取的内容做转义处理

花伊自在美 2022-09-08 21:33:47

个人临时解决办法:个人写的一个正则


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过滤不了了

还是求一个最终解决办法

隔岸观火 2022-09-08 21:33:47
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("..................");

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文