这是我参与「第四届青训营 」笔记创作活动的第4天
导言:安全问题在计算机领域的地位举足轻重,在各种交叉领域都能遇到,在目前这个数字化信息化的时代安全就更需要众视,那么本文会总结常见的一些前端安全的攻击方法和防御方法
Cross-Site Scripting(XSS)恶意脚本注入
利用了 盲目信任用户的提交内容 前端工程师直接直接把String → dOM
特点
通常难以从 UI上感知(暗地执行脚本) 一窃取用户信息(cookie/token) 绘制UI(例如弹窗),诱骗用户点击/填写表单
类型
区别
前者服务端攻击
后者浏览器攻击
对浏览器的区别攻击
总结:永远不要相信用户的输入,不要直接转化为dom
防御措施
- 做好字符串转义过滤避免XSS攻击
- String → DOM 要对其转义
- 上传SVG文件也要对其进行扫描
- 不要自定义跳转连接(需要的话就做好过滤)
- 自定义样式也要注意过滤
CSRF(Cross-site request forgery)跨站伪造请求
CSRF Get请求例子(也可以使用post请求等)
SQL注入攻击
Dos攻击(Denial of Service)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
浏览器同源策略
协议 域名 端口
这几个都不是同源
HTTP请求分为同源和跨域
CSP(Content Security Policy)内容安全策略
例子:服务器响应头需要同源
CSRF跨站伪造请求的防御
- Origin+Referrer
如果请求来源是异常来源就可以直接拒绝非自己定义的请求
- token
现有页面后请求,校验token,通过则返回,不通过不返回
token需要设置过期时间,定时更新,需要做用户绑定
从根源上解决!SameSite Cookie
区别!!