【问题标题】:BBCode with XSS escape?带有 XSS 逃逸的 BBCode?
【发布时间】:2016-05-22 08:30:02
【问题描述】:

有这样一个字符串:

jaksldhfklajsfdhdkjf[bbcode]img url[/bbcode]kjalhdfk<script>alert(1)</script>sdlfjah

……我希望它变成:

jaksldhfklajsfdhdkjf<img src="img url" />kjalhdfk&lt;script&gt;alert(1)&lt;/script&gt;sdlfjah

…仅使用 JavaScript。

我找不到可以做到这一点的 JS 库。 是否有完整的库或其他方式(或不同的逻辑)来防止不安全的输入?

【问题讨论】:

    标签: javascript security xss bbcode


    【解决方案1】:

    最好的方法是在解析 BBCode之前更换擒纵机构。

    function escape(s) { // http://escape.alf.nu/
        function html(a) {
            return {'>':'&gt;', '<':'&lt;', '"':'&quot;'}[a] || a;
        }
        s = s.replace(/[<>"]/g, html);
        s = s.replace(/\[bbcode]((?:http:|ftp:\/)\/\/.*?)\[\/bbcode]/g, '<img src="$1">');
        return s;
    }
    

    【讨论】:

    • 是的,我很好奇为什么我自己没有弄清楚这个 D:这非常简单 D:只需要在 before 解析之前转义 虽然我发现这个一周在我提出问题后,我没有发现我需要将 javascript: 列入白名单。毕竟,谢谢你的回答
    猜你喜欢
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多