2014-11-14 79 views
0

我有一個問題,加載到輸入字段值的HTML。作爲圖片。HTML輸入值

A)當我保存:

enter image description here

B)當我加載:

enter image description here

C)用於創建輸入字段中的代碼:

var templateField; 
templateField = '<input type="text" id="' + fieldName + '" maxlength="' + args.maxlength + '" value="' + args.value + '"/>'; 
$controller.append(templateField); 

備註: 我不能追加templateField首先和之後做一個innerHtml因爲我不知道什麼類型的值(日期,布爾等)。該控制器用於創建動態字段。我有這個問題,只是當值的類型是字符串和用戶把字段的HTML值。

+3

看看這是否有幫助? http://stackoverflow.com/questions/1219860/html-encoding-in-javascript-jquery – 2014-11-14 14:29:23

+0

也許你的一個varible包含雙重代碼。 – vaso123 2014-11-14 14:29:58

+1

看起來像您有一個XXS漏洞。逃避用戶輸入。 – epascarello 2014-11-14 14:34:07

回答

0

你需要將它們設置之前轉義值:

function replaceStr(str) { 
    return str 
    .replace(/&/g, "&amp;") 
    .replace(/"/g, "&quot;") 
    .replace(/'/g, "&#39;") 
    .replace(/</g, "&lt;") 
    .replace(/>/g, "&gt;"); 

} 

value="' + replaceStr(args.value) + '" 

單引號替換爲可選在這種情況下。