xss跨站脚本攻击
原理
简介: 数据显示在页面,如果是脚本<script></script>
,就会运行,从而达到攻击效果
数据来源:
- url上的
- 从数据库读取的。如用户的评论,如果是一段脚本
<script></script
,当评论在你的页面显示的时候,未经处理,这段脚本就会运行
导致的后果
- 用户的信息会被窃取。cookie信息,账号信息
- 页面逻辑会被改。重定向到某个网站、修改页面内容
攻击方式
- url方式:
http://baidu.com?query=<script></script>
,如果页面直接将query字段的值拿到放到页面显示,脚本就会被执行。可以包含脚本的页面发送给其他用户,只要点击就会中招。大部分浏览器支持X-XSS-Protection,但firefox不支持 - 从数据库拿出的脚本,显示在页面上。如评论列表,用户名称...,将用户输入的再拿出来显示,其他用户浏览到这个页面。未经处理都造成攻击
防御
- htpp header 增加X-XSS-Protection字段,用来预防url的脚本
- 字符过滤:将< > ' " 替换成字符实体
- csp(内容安全策略): http 响应头字段,允许哪些脚本可以运行