这是我参与「第四届青训营 」笔记创作活动的第10天
今日学习了 web 开发的安全之旅!
注入攻击
具体流程:
- 请求
- sql 参数 恶意注入
- server -> 参数->sql
- 运行 sql code
- 结果:获取其他数据,修改数据,删除数据.
攻击者:
sql 注入,被动删库跑路
injection demo 2 --读取+修改
ssrf demo
dos 攻击
Denial of Service (Dos)
通过某种方式(构造特定请求),导致服务器资源被显著小号,来不及响应更多请求,导致请求挤压,进而雪崩效应.
正则表达式--贪婪模式
重复匹配时[?] vs [no?]满足一个与尽量多
回溯型问题
D Dos 短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法响应新请求
不搞复杂的,量大就完事了 攻击特点:
- 直接访问 ip
- 任意 api
- 消耗大量带宽(耗尽)
洪水攻击!
中间人攻击:
- 明文传输
- 信息篡改不可知
- 对方身份未验证
永远不要相信,用户提交的内容 不要将用户提交内容直接转换成 Dom
主流框架会默认防御 xss 攻击
不要做,用户自定义跳转链接
csp
内容安全策略
csrf 的防御
同源请求,get+head 不发送
referer
if 伪造请求 ===异常来源
攻击成功需要同时满足以下几个条件:
- POST 请求提交表单后端没做转义直接入库。
- 后端从数据库中取出数据没做转义直接输出给前端。
- 前端拿到后端数据没做转义直接渲染成 DOM。
持久型 XSS 有以下几个特点:
- 持久性,植入在数据库中
- 盗取用户敏感私密信息
- 危害面广 CSRF(Cross Site Request Forgery),即跨站请求伪造,是一种常见的Web攻击,它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。
1.CSRF攻击的原理
下面先介绍一下CSRF攻击的原理:
完成 CSRF 攻击必须要有三个条件:
- 用户已经登录了站点 A,并在本地记录了 cookie
- 在用户没有登出站点 A 的情况下(也就是 cookie 生效的情况下),访问了恶意攻击者提供的引诱危险站点 B (B 站点要求访问站点A)。
- 站点 A 没有做任何 CSRF 防御
我们来看一个例子: 当我们登入转账页面后,突然眼前一亮惊现"XXX隐私照片,不看后悔一辈子"的链接,耐不住内心躁动,立马点击了该危险的网站(页面代码如下图所示),但当这页面一加载,便会执行submitForm这个方法来提交转账请求,从而将10块转给黑客。