web-dev-qa-db-ja.com

XSSを防ぐのに十分なjQuery.val()ですか

JQuery関数.val()textarea/inputの値を取得していますか?XSS対応ですか?

<html>
    <textarea id="t1"></textarea>
    <script> 
        var toBeDisplayed = $('#t1').val();
        $('#elem').html(toBeDisplayed);
    </script>
</html>
3
eversor

ガンボが彼のコメントで述べたように、それはあなたが何を読んだかは重要ではありませんが、あなたが事実の後に何を表示したかは重要です。単にあなたの質問に答えるために、いいえ。 jQueryの.val()には、XSSからユーザーを保護するフィルタリングはありません。値をvar toBeDisplayedに取り込んでから、リレーされて再度表示される前に独自のフィルタリングを実行することができます。

5
Jason Higgins

もちろん、入力をユーザーに表示する前に、サーバー側でサニタイズを行うのが常に最も安全です。これはブラウザーでより迅速かつ簡単に実行できますが、ブラウザーで実行されるコードはすべて完全に信頼できると見なすべきではありません。変更または無効化できます。

0
Luke Sheppard