这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
Web 开发安全|青训营笔记
攻击篇
Cross-Site Scripting(XSS)
跨站脚本攻击,通过将脚本注入网页进行攻击
主要利用:
- 程序员盲目信任用户提交的内容
- 程序员直接将提交的字符串转化为了DOM
可用API:document.write;element.innerHTML=anystring;SSR(user_data)
特点:
存储型XSS(Stored XSS)
反射型XSS(Reflected XSS)
基于DOM的XSS(DOM-based XSS)
突变型XSS(Mutation-based XSS)
这种攻击最为巧妙,很懂浏览器是怎么进行渲染的,也是最难防御的一种方法。
Cross-Site request forgery(CSRF)
跨站请求伪造,是一种常见的Web攻击,它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作,窃取或修改敏感信息。
Injection 注入攻击
SQL注入:
此外还有 命令行,系统命令注入
还有SSRF 服务端请求假造,与注入原理类似
Denial of Service(Dos)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应。
ReDos:根据正则表达式的 Dos
Distributed Dos(DDos)
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成 全部请求,导致请求堆积,进而雪崩效应,无法响应新请求。
不搞复杂的,量大就行了
SYN Flood,是靠海量的请求完成攻击
中间人攻击
中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
利用要素:
- 明文传输
- 信息篡改不可知
- 身份未验证
防御篇
XSS
CSRF
inject
对用户进行的操作进行严格管控
Dos
对于前端能做的很少,基本是运维来做。
ReDos 防御
DDos防御
防御中间人攻击
使用HTTPS安全协议(HTTPS=HTTP+TLS)