一. XSS
https://juejin.cn/post/6844903685122703367#heading-20 这篇文章写的太好了,我就做个简单的总结
XSS 的类型
存储型
攻击者评论一个可执行的脚本,后端将其存储在数据库中。没有对其进行转译直接返回给前端,其他用户展示该评论的时候就会执行该脚本(比如获取document.cookie 然后发给另一个服务器)
反射性
和存储类型不同的是,反射类型指的是攻击者伪造一个URL,后端会根据这个URL返回前端的页面,没有进行转译,生存的html文件直接返回给用户
Dom型
前端一般做状态存储,比如说用url上的key,value来存储用户的搜索内容。攻击者伪造一个URL,点击者会在dom载入脚本而被攻击
防范措施
- 限制 URL 长度,能够增大XSS攻击难度
- HTTP-only Cookie: 禁止 JavaScript 读取某些敏感 Cookie
-
CSRF
https://juejin.cn/post/6844903689702866952 接着来
攻击流程
受害者登录a.com,并保留了登录凭证(Cookie)。
- 攻击者引诱受害者访问了b.com。
- b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会…
- a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。
- a.com以受害者的名义执行了act=xx。
- 攻击完成,攻击者在受害者不知情的情况下,冒充受害者,让a.com执行了自己定义的操作。
解决方案
通过Referer Header确定请求源,非同源拒绝请求
SCRF Token
简单理解就是本地存储了一个token,然后每次手动发起请求的时候都会携带这个token,例如设置请求拦截器。但是伪造的请求就没办法拿到你的这个本地token。
