我们用jquery-datatable渲染一张table,拿到的资料,其中有一列的内容会碰到类似:8080::HTTP/1.1 200 OK | <script>window.location.href = "http://example:8080/a.asp";</script>在渲染的时候浏览器就会执行脚本,页面发生跳转。要如何做可以防止运行JavaScript,解决安全隐含?
3 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
function xssText(str) {
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, "&");
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
s = s.replace(/ /g, " ");
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/\n/g, "<br>");
return s;
}
xssText('<script>window.location.href = "http://example:8080/a.asp";</script>')
慕田峪4524236
TA贡献1875条经验 获得超5个赞
常见的安全问题,专业术语XSS,可以搜一下相关文章。
这里简单解决就是做html转义,把&<>等特殊字符转掉。
& -> &
< -> <
> -> >
添加回答
举报
0/150
提交
取消