2016-05-22 24 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:私は、私は質問をした後に、この1週間見つかったものの を解析_before_エスケープする必要があり、I: これはobiouslyシンプルなDです私は_javascript:_をホワイトリストする必要があるとは思わなかった。結局のところ、お返事ありがとうございます。 – petjelinux