BSSode与XSS逃脱?

时间:2016-05-22 08:30:03

标签: javascript security xss bbcode

有一个字符串:

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库。 是否有完整的库或其他方式(或不同的逻辑)来防止不安全的输入?

1 个答案:

答案 0 :(得分:0)

执行您要做的事情的最佳方法是在解析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;
}