一、XSS 攻击
1、定义
攻击者通过篡改网页,嵌入恶意JS代码,当用户浏览网页时,嵌入其中web里面的JS代码会被执行,从而达到恶意攻击用户的一种攻击方式
2、场景
(1)在网页 input 或 textarea 中输入<script>alert('hello')</script>
或其他脚本
(2)直接使用 URL 参数攻击
https://www.baidu.com?jarttoTest=<script>alert(document.cookie)</script>
3、原理
a、攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)
b、诱使受害者打开受到攻击的服务器URL
c、受害者在Web浏览器中打开URL,恶意脚本执行
4、 注意事项
a、所有用户输入的地方都不安全
b、所有展示用户输入的地方都不安全
c、JS代码里不要用 eval
d、不要用 innerHTML
3、防范
a、对字符串输入的长度限制
b、对HTML转义处理,将其中的”<”,”>”等特殊字符进行转义编码
c、不要使用 innerHTML,改成 innerText,JS代码就会被当成文本,不执行
二、使用eval会出现的问题
1、降低性能
2、安全问题,由于给被求值的字符串赋予了太大的权力,可能因此导致 XSS 攻击。
3、调试困难,其执行的代码很难进行断点调试