这是我参与「第四届青训营 」笔记创作活动的第6天
随着科技的发展,web业务的迅速发展也引起了黑客们的关注,这也使web的安全受到了威胁。所以安全问题“很常见”,而这也会危害到
- 用户
- 公司
- 程序员
一、重点内容
认识XSS
二、详细知识点
攻击
XSS概念
XSS全称是Cross Site Scripting,中文名叫做跨站脚本攻击,本来它的缩写应该是CSS,但是会和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,所以将跨站脚本攻击缩写改为XSS。
XSS原理
XSS的原理是黑客在 Web 页面里插入恶意可执行网页脚本代码,当用户浏览这个网页的时侯,里面的脚本代码会被执行,从而可以达到黑客盗取用户信息或其他侵犯用户安全隐私的目的。
XSS特点
- 通常从UI上感知(暗地执行脚本)
- 窃取用户信息(cookie/token)
- 绘制UI(例如弹窗),诱骗用户点击或者填写表单
攻击类型
反射型XSS(非持久型XSS)
攻击方式具有一次性并且只在点击链接的时候才产生作用。(最普遍的)
特点:
- 即时性。直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,拿到用户隐私数据;
- 黑客需要诱骗点击;
- 反馈率低,所以较难发现和响应修复;
- 盗取用户敏感保密信息。
存储型XSS(持久型XSS)
攻击脚本将被永久地存放在目标服务器端中,下次请求目标页面时不用再提交XSS代码。(最直接的)
特点:
- 持久性,植入在数据库中;
- 伤害广泛;
- 盗取用户敏感私密信息。
DOM型XSS
类似存储型 XSS,但DOM型XSS则是本地更新DOM时导致了恶意脚本执行。
预防XSS攻击
- encoding(编码)
- validation(验证)
- CSP
- 永远不信任用户的提交内容
- 不要将用户提交内容直接转换成DOM