XSS,跨站脚本攻击
类型
- 反射型 XSS(非持久型)
- 持久型 XSS
- DOM-based XSS
!()[img/in-post/XSS/DOM-based-XSS.png]
注入的脚本各种各样,只要能被浏览器解析的标签都可以执行:
- 运营商注入广告(这个是HTTP劫持)
危害
- 在页面伪造表单,获取用户的账号密码
- 获取用户的 cookie,实现会话劫持
- XSS Worm(终极手段)
防御
- 输入过滤、输出转义
- 浏览器禁止页面的JS访问带有HttpOnly属性的Cookie
- 两端进行输入格式检查
- 通过编码转义的方式进行输出检查
- HTTPS :防止HTTP、DNS劫持;加密
- 设置 CSP (Content Security Policy 内容安全策略),以白名单的形式添加信任域名
- 针对我们原来的网页被嵌套到 iframe 里面,(window.self !== window.top) && (window.top.location = window.self.location). 如果是自己在使用时放在了iframe中,可以添加白名单列表。