正文:
1,含义:
XSS(Cross Site Scripting), 中文名为跨站脚本。是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。跨站脚本的重点不在‘跨站’上,而在于‘脚本’上。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码。实际上是在目标网站的作用域下执行了这段js代码。
2,攻击类型:
(1)反射型 XSS:通过URL将XXS代码提交到服务器,服务器处理后返回到浏览器进行解析
(2)存储型 XSS(持久型XSS):将XSS代码发送到服务器(不管是数据库、内存还是文件系统等。),触发相关场景,就会发生攻击
(3)DOM XSS:客户端的问题,可能是编写js造成的。(慎用eval)
3,危害:
(1)通过document.cookie盗取cookie
(2)使用js或css破坏页面正常的结构与样式
(3)流量劫持(通过访问某段具有window.location.href定位到其他页面)
(4)Dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。
(5)利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
(6)利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
4,应对方案:
(1)对重要的cookie设置httpOnly
(2)对用户输入的数据进行编码,读出的时候进行解码,把一些不合法的内容过滤掉(比如DOM属性,iframe, script节点)
参考博客:
前端安全之XSS攻击 - 凯斯keith - 博客园
https://www.cnblogs.com/unclekeith/p/7750681.html