防止用户恶意输入
你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。
1 function replaceValue(input) { 2 var str=input.value; 3 str = str.replace(/&/g, '&'); 4 str = str.replace(/</g, '<'); 5 str = str.replace(/>/g, '>'); 6 str = str.replace(/"/g, '"'); 7 str = str.replace(/'/g, '''); 8 return str 9 }
DOM提供的innerHTML方式来添加代码的时候,<script>标签中的代码并不能执行,如果有src属性,指向的外联文件也不会被加载,这并不是浏览器的bug,因为w3c文档就是这么规定的。但是jq的html动态添加的就会执行,而且是同步的,无论是直接写的script还是src引入的j文件,记住永远不要信任用户的输入!!