我正在使用keyup()事件創建窗體:用戶鍵入的每個字符都立即顯示在同一頁面上的另一個div上。如何防止keyup()jQuery事件的XSS?
它容易受到XSS的影響。我如何使用jQuery來保護它?
注意:在我的表單中,我只使用拉丁字母數字字符,以及逗號,分號,冒號。
我從OWASP搜索了「改革」工具,但有沒有更好的方法?
在此先感謝。問候
我正在使用keyup()事件創建窗體:用戶鍵入的每個字符都立即顯示在同一頁面上的另一個div上。如何防止keyup()jQuery事件的XSS?
它容易受到XSS的影響。我如何使用jQuery來保護它?
注意:在我的表單中,我只使用拉丁字母數字字符,以及逗號,分號,冒號。
我從OWASP搜索了「改革」工具,但有沒有更好的方法?
在此先感謝。問候
有幾個可用的細節:記住,你不必使用jQuery的HTML「解析」的一切。而不是使用.html()
,使用DOM操作和.text()
(它們通常也更快)。例如:如果這是不可能的
$('#result').text($('<span>').addClass('whatever').text(someInput));
,你也可以做到完美無瑕的HTML與.text()
設置,然後用.html()
取它逃脫:
$('#result').html('<span class="whatever">' + someInput + '</span>');
將成爲這一點。例如,這樣的:
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>';
}));
嗨minitech,謝謝你的迴應。事實上,我使用'html()'並使用'text()'爲我做了。感謝您提供的其他信息,這也將非常有用。 Regards – alexx0186 2012-04-13 04:01:35