forked from p81075629/datagear
解决数据集预览、表格图表展示时没有处理数据XSS的问题
This commit is contained in:
parent
b4f71fbe79
commit
2c67efb23c
|
@ -2278,6 +2278,38 @@
|
|||
return "dataGearClientElement" + nextIdSeq;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 将给定值按照HTML规范转义,如果不是字符串,直接返回原值。
|
||||
*/
|
||||
chartFactory.escapeHtml = function(value)
|
||||
{
|
||||
if(typeof(value) != "string")
|
||||
return value;
|
||||
|
||||
var epn = "";
|
||||
|
||||
for(var i=0; i<value.length; i++)
|
||||
{
|
||||
var c = value.charAt(i);
|
||||
|
||||
if(c == '<')
|
||||
epn += '<';
|
||||
else if(c == '>')
|
||||
epn += '>';
|
||||
else if(c == '&')
|
||||
epn += '&';
|
||||
else if(c == '"')
|
||||
epn += '"';
|
||||
else if(c == '\'')
|
||||
epn += ''';
|
||||
else
|
||||
epn += c;
|
||||
}
|
||||
|
||||
return epn;
|
||||
};
|
||||
|
||||
/**
|
||||
* 记录异常日志。
|
||||
*
|
||||
|
|
|
@ -3665,7 +3665,7 @@
|
|||
//单元格内容渲染函数
|
||||
renderValue: function(value, type, row, meta)
|
||||
{
|
||||
return value;
|
||||
return chartFactory.escapeHtml(value);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -792,7 +792,7 @@ po.previewOptions.url = "...";
|
|||
var name = dataSetProperties[colIndex].name;
|
||||
|
||||
if(setValue === undefined)
|
||||
return row[name];
|
||||
return chartFactory.escapeHtml(row[name]);
|
||||
else
|
||||
row[name] = setValue;
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue