猿问

当资料里含有JavaScript,在向页面输出时如何禁止其执行

我们用jquery-datatable渲染一张table,拿到的资料,其中有一列的内容会碰到类似:

8080::HTTP/1.1 200 OK | <script>window.location.href = "http://example:8080/a.asp";</script>

在渲染的时候浏览器就会执行脚本,页面发生跳转。
要如何做可以防止运行JavaScript,解决安全隐含?


慕虎7371278
浏览 655回答 3
3回答

汪汪一只猫

function xssText(str) {&nbsp; &nbsp; var s = "";&nbsp; &nbsp; if (str.length == 0) return "";&nbsp; &nbsp; s = str.replace(/&/g, "&amp;");&nbsp; &nbsp; s = s.replace(/</g, "&lt;");&nbsp; &nbsp; s = s.replace(/>/g, "&gt;");&nbsp; &nbsp; s = s.replace(/ /g, "&nbsp;");&nbsp; &nbsp; s = s.replace(/\'/g, "&#39;");&nbsp; &nbsp; s = s.replace(/\"/g, "&quot;");&nbsp; &nbsp; s = s.replace(/\n/g, "<br>");&nbsp; &nbsp; return s;}xssText('<script>window.location.href = "http://example:8080/a.asp";</script>')

慕田峪4524236

常见的安全问题,专业术语XSS,可以搜一下相关文章。这里简单解决就是做html转义,把&<>等特殊字符转掉。& -> &amp;< -> &lt;> -> &gt;

慕码人8056858

在向页面输出时如何禁止其执行尽量在输入的时候做字符串转义或者直接验证不通过,一份资料添加只有一次,而访问就不知道多少次了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答