2014-11-14 82 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) + '" 

单引号替换为可选在这种情况下。