我从MySQL数据库中检索到一个字符串(在存储到db之前进行转义), 存储如下:
例如:
<script>alert(\'hi, im a bad injected script\');</script>
我尝试在jQuery DataTables增强的表中打印存储的数据:
var dataString = data;
// data contains the string retrieved from database..
someDataTable.row.add([dataString]).draw();
// add/print the retrieved string to a table row
网页执行网页中打印的数据(脚本)。我应该怎样防止这种情况。我希望页面能够打印脚本而不是执行它。
答案 0 :(得分:1)
<强>解强>
使用以下代码对HTML标记和实体进行编码:
dataString = $('<div/>').text(data).html();
<强>样本强>
请参阅this jsFiddle以获取代码和演示。
答案 1 :(得分:-1)
使用htmlentities($str)
存储字符串。它会将html实体转换为字符代码。