防止用户恶意输入

你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

1 function replaceValue(input) {
2             var str=input.value;
3             str = str.replace(/&/g, '&');
4             str = str.replace(/</g, '&lt;');
5             str = str.replace(/>/g, '&gt;');
6             str = str.replace(/"/g, '&quot;');
7             str = str.replace(/'/g, '&#039;');
8             return str
9         }

 DOM提供的innerHTML方式来添加代码的时候,<script>标签中的代码并不能执行,如果有src属性,指向的外联文件也不会被加载,这并不是浏览器的bug,因为w3c文档就是这么规定的。但是jq的html动态添加的就会执行,而且是同步的,无论是直接写的script还是src引入的j文件,记住永远不要信任用户的输入!!

原文地址:https://www.cnblogs.com/xcdl/p/7410610.html