2016-05-22 1 views
0

Существует строка типа:BBCode с побегом XSS?

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, которая может это сделать. Есть ли заполненная библиотека или другой способ (или другая логика) для предотвращения небезопасного ввода?

ответ

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; 
} 
+0

Да, мне очень интересно, почему я не выяснить это сам D: Это obiously простой D: просто нужно, чтобы избежать _перед_ разбора Хотя я нашел одну неделю после того, как я задаю вопрос, я не нашел, что мне нужно белить список _javascript: _. В конце концов, спасибо за ответ – petjelinux