私はlaravelを使用しています。ユーザーがテキストメッセージを送信すると、いくつかの悪質なコードが含まれている可能性があります。 {{}}
を使用すると、ユーザーが送信した正確なテキストが表示されます。彼はjquery - XSSを防ぐためにHTMLをエスケープする方法は?
<script>alert("malicious")</script>
を送信した場合、それはまったく同じに表示され、それは良いことだが、私はjqueryのAJAXを使用する場合、私はいくつかのHTMLタグ内にいくつかの変数にフェッチされたデータを入れて、最後にメインタグにそれらのすべてを追加しますそのような:
data = '';
//loop starts here // some otger codes deleted for cleanness
data += "<h2>"+response.name+"</h2>";
data += "<p>"+response.description+"</p>";
$('#mydata').html(data);
と今の問題は、私はhtml()
を使用する場合、ユーザー悪意のあるコードが実行されると、私がいない場合、結果はHTMLとして表示されないことです。
私は$.parseHTML
で何かするべきだと思いますか?
おかげ
私は 'text()'を使うとHTMLタグのスタイルを表示するのではなくシンプルテキストであると言っていました。 h2タグとpタグを単純なrextとして表示しないようにしたいが、他のタグは表示したくない。 – codepro
私は、更新された答えを参照してください – Joschi
速い返信のおかげで、あなたは良いアイデアを述べたが、私の場合はいくつかの違いがあります。私はフェッチされるべき多くのデータを持っています。あなたのアプローチではできない部分は次のとおりです: – codepro