2013-10-31 132 views
0

我通過getJSON從服務器(user_agent字符串)接收信息並將其插入到表中。但我認爲下面的代碼是不安全的,因爲有人可以改變user_agent變量來注入一個帶有相關結果的字符串。jquery ajax防止xss

在下面的代碼中value是服務器返回的字符串。

$.each(this, function(){ 
    var new_row=""; 
    var columns=""; 
    $.each(this, function(key,value) { 
     columns+="<td>"+value+"</td>"; 
    }); 
    new_row+='<div id="whoer_rows" style="display:none"><table border="1"><tr>'+columns+'</tr></table></div>'; 
}); 

我試圖使用jQuery的方法text(),如:

columns+=$("<td></td>").text(value); 

但我無法適應new_row糾正jQuery的語法

+0

如果它來自你的服務器,你不能驗證它,並使它在那裏安全嗎? http://php.net/manual/en/function.htmlspecialchars.php –

+0

好主意!感謝它。 – Vasvas

回答

0

解決吧!

$.each(this, function(){ 
    var columns=""; 
    $.each(this, function(key,value) { 
     columns+="<td>"+value+"</td>"; 
    }); 

    var $tr=$("<tr></tr>").append(columns); 
    var $table=$("<table></table>"); 
    var $div=$("<div></div>"); 

    $table.append($tr).appendTo($div); 
    $div.prependTo("#whoer"); 
}); 
+0

哇!抱歉。在考慮jQuery語法時忘記了主要目標。 – Vasvas