带有 XSS 转义的 BBCode?
BBCode with XSS escape?
有这样一个字符串:
jaksldhfklajsfdhdkjf[bbcode]img url[/bbcode]kjalhdfk<script>alert(1)</script>sdlfjah
…我希望它变成:
jaksldhfklajsfdhdkjf<img src="img url" />kjalhdfk<script>alert(1)</script>sdlfjah
…仅使用 JavaScript。
我找不到可以做到这一点的 JS 库。
是否有完整的库或其他方式(或不同的逻辑)来防止不安全输入?
完成您想要做的事情的最佳方法是在解析 BBCode 之前更换擒纵机构。
function escape(s) { // http://escape.alf.nu/
function html(a) {
return {'>':'>', '<':'<', '"':'"'}[a] || a;
}
s = s.replace(/[<>"]/g, html);
s = s.replace(/\[bbcode]((?:http:|ftp:\/)\/\/.*?)\[\/bbcode]/g, '<img src="">');
return s;
}
有这样一个字符串:
jaksldhfklajsfdhdkjf[bbcode]img url[/bbcode]kjalhdfk<script>alert(1)</script>sdlfjah
…我希望它变成:
jaksldhfklajsfdhdkjf<img src="img url" />kjalhdfk<script>alert(1)</script>sdlfjah
…仅使用 JavaScript。
我找不到可以做到这一点的 JS 库。 是否有完整的库或其他方式(或不同的逻辑)来防止不安全输入?
完成您想要做的事情的最佳方法是在解析 BBCode 之前更换擒纵机构。
function escape(s) { // http://escape.alf.nu/
function html(a) {
return {'>':'>', '<':'<', '"':'"'}[a] || a;
}
s = s.replace(/[<>"]/g, html);
s = s.replace(/\[bbcode]((?:http:|ftp:\/)\/\/.*?)\[\/bbcode]/g, '<img src="">');
return s;
}