簡體   English   中英

如何防止針對keyup()jQuery事件的XSS?

[英]How can I prevent XSS for an keyup() jQuery event?

我正在用keyup()事件制作表單:用戶鍵入的每個字符都會立即顯示在同一頁面上的另一個div中。

它容易受到XSS的攻擊。 如何使用jQuery保護它?

注意:在表單中,我僅使用拉丁字母數字字符以及逗號,分號,冒號。

我已經從OWASP搜索了“改革”工具,但是有沒有更好的方法?

提前致謝。 問候

提供一些細節:請記住,您不必為所有內容使用jQuery的HTML“解析”。 除了使用.html() ,還可以使用DOM操作和.text() (通常也更快)。 例如,這:

$('#result').html('<span class="whatever">' + someInput + '</span>');

會變成這樣:

$('#result').text($('<span>').addClass('whatever').text(someInput));

如果不可能,也可以通過設置.text()然后使用.html()進行完美的HTML轉義。 例如,這:

var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, '<b>$1</b>'));

會變成這樣:

var data = 'This text: **is bold**';

$('#result').html(data.replace(/\*\*(.+?)\*\*/g, function(x) {
    return '<b>' + $('<div>').text(x).html() + '</b>';
}));

我發現node-validator包含的xss清潔程序很全面。 您感興趣的代碼在這里 您需要對其進行一些清理,以便在瀏覽器中使用(刪除module.exports並包裝為Javascript閉包),但是它應該可以無縫運行。 如果願意,也可以直接將其添加到JQuery插件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM