Web开发的安全之旅 | 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的的第5天
两个角度攻击和防御
攻击
-
投放恶意脚本xss
-
xss的特点
- 通常难以从ui上感知
- 窃取用户信息
- 绘制ui,引诱用户点击
-
Stored XSS
- 恶意脚步存放在数据库中
- 访问也买你->读数据 被攻击
- 危害最大,全部用户都可见
-
Reflected 反射攻击
-
不涉及数据库
-
从URL上攻击
-
-
DOM-based XSS
- 不需要服务器的参与
- 恶意攻击发起 执行都在浏览器上完成
-
CSRF
- 用户不正确的前提下
- 利用用户权限
- 构造指定HTTP请求,窃取或修改用户敏感信息
-
injection注入攻击
- 通过注入sql参数,盗取数据
-
Dos攻击
- 通过某种方式,导致服务器资源被消耗,来不及响应更多的请求,导致请求挤压,造成雪崩效应
-
DDOS
- 短时间,让大量僵尸设备请求流量,让服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新的请求
- 直接访问ip,任意API
-
中间人攻击
- 明文传输
- 信息篡改
- 对方身份未验证
防御
- xss
-
前端:主流框架默认防御,googel-closure-library
-
服务端:DOMPurify
-
string->Dom,上传svg,尽量不要做自定义跳转链接,自定义样式,这些方式我们需要防范
-
插播:Same-origin Policy
- 两个url协议,域名,端口要确保都相同,就是同源
-
csp
- CSRF的防御
- 防御异常来源,同源请求中,GET+HEAD不发送
- 如果是合法的页面,服务器接受过此请求,可以对此页面请求进行标记
- CSRF--iframe
- 绕过源限制
- 将iframe藏在button下面,点击button会造成攻击
-
将更新和获取放在同一个接口,可能会导致两个接口同时被攻击
-
避免用户信息被携带
-
SameSite Cookie
- domain:可以访问该Cookie的域名
- 携带第一方的cookie,拒绝第三方的Cookie
- 限制的是:Cookie domain,页面域名
- 如果依赖于第三方服务,则使用这个属性
- CORS 和 SameSite的区别
Regex Dos
传输层的防御方式
- http的特性
- https的简单流程
- 通过使用hash计算来确认信息的安全性
- 数字签名
- 私钥:自己可见 公钥:公开可见
- SRI保证我们的内容不被篡改
总结
一定要注意安全问题,一定要不断学习新的防御知识,加强防范。