这是我参与「第五届青训营 」伴学笔记创作活动的第11天
xss跨站脚本攻击
cross-site script 注入script
特点
- 难以感知
- 窃取用户信息cookie/token
- 绘制ui,诱骗用户填写表单
攻击方式
- 存储到数据库中——攻击到所有访问页面的
- 反射式——参数放到url上(get方式),修改了server数据
- dom xss——param修改浏览器
- mutation xss攻击
CSRF跨站伪造请求
cross-site request forgery
- 在用户不知情情况狂下
- 利用用户权限(cookie)
- 构造指定http请求,修改信息/窃取信息
注入
sql注入
dos攻击
redos
利用正则表达式贪婪匹配
要求以ab开头,只能包含ab
服务器不断分析url
ddos
短时间大量请求
tcp三次握手,请求者不发送第三此cdk,请求无法被释放
传输层攻击
中间人攻击
由于
- 明文传输
- 没有对身份进行验证
- 信息篡改不可知
防御
永远不要相信用户提交的任何内容
xss
主流框架防御xxs
- 如果必须根据内容生成dom——转义字符
允许上传svg——svg中可以生成script标签
<svg>
<script>alert('sxx)</script>
</svg>
自定义跳转链接/自定义样式 都可能出现注入
同源策略same-origin Policy
域名、协议、端口号
csp内容安全策略 content-Security Policy
从域名限制脚本访问
跨站伪造请求csrf
-
限制请求来源 对origin和reffer进行校验,同源请求中get+header不会发送origin 所以校验refer较多 Referer:服务器该网页是从哪个页面链接过来的
-
token防御
攻击者可能是自己的用户,将token与具体用户进行绑定 还要有过期时间
-
iframe防御
攻击者将iframe(div)包裹住原页面,点击原页面时,iframe(div)获取点击,触发事件
防御
deny/sameorigin-iframe不能加载/同源页面才能iframe加载
- csrf的反模式
避免将get/post方式混写,安全漏洞极大
- sameSite——避免用户信息被携带
向服务器发送请求时,只能携带同源的cookie,禁止携带第三方cookie——设置domain属性
sameSite和cors区别
samesite只负责cookie发送
使用中间件防御跨站伪造攻击
ddos
传输层防御
加密流程
先使用非对称加密获取sessionkey,后根据sessionkey进行对称加密
完整性
文件+hash值