这是我参与「第四届青训营 」笔记创作活动的的第6天
攻击篇
- XSS
- DOS
- CSRF
- SQL
- 注入
XSS 攻击
跨站脚本攻击
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!
XSS主要利用
XSS的特点
存储型XSS攻击
反射型XSS攻击
基于DOM的XSS攻击
前端-->浏览器
基于Mutation的XSS攻击
CSRF跨站伪造请求
CSRF-GET请求方式
Injection(注入)
SQL注入
注入不止于SQL
- CLI
- OS command
- Sever-Side Request Forgery(SSRF),服务端伪造请求(严格而言,SSRF不是injection,但是原理类似)
注入执行案例:
SSRF执行案例:
Denial of Service(DOS)
通过某种方式(构造特定请求),导致服务器资源被显著消耗,来不及相应更多请求,导致请求挤压,进而雪崩效应。
贪婪模式
ReDos:基于正则表达式的Dos
例如:
Distributed Dos(DDoS)
短时间内,来自大量僵尸设备的请求流量,服务器不能及时完成全部请求,导致请求堆积,进而雪崩效应,无法相应新请求。
不稿复杂的,量大就完事了
攻击特点
- 直接访问IP
- 任意API
- 消耗大量带宽(耗尽)
例如: 洪水攻击
TCP三次握手四次挥手
传输层攻击方式
中间人攻击
防御篇
针对XSS攻击
XSS——现成工具
前端:
- 主流框架防御 XSS
- google-closure-library
服务端(Node)
- DOMPurify
如果用户需求程序员必须动态生成 DOM 怎么办??
- string -> DOM
- 上传 svg
- Blob 动态生成 script
- 自定义跳转链接
- 自定义样式
Same-origin Policy(SOP--同源策略)
同源:两个url的协议、域名、端口号,统统相等。
CSP)
内容安全策略
CSRF 的防御
CSRF--token
除了Origin + Referrer 其他判断【请求来自于合法来源】的方式
先有页面,后有请求
if如果(请求来自合法页面)then那么(服务器接受过页面请求)then那么(服务器可以标识)
CSRF--iframe攻击
CSRF anti-pattern
避免用户信息被携带:SameSite Cookie
防御CSRF的正确姿势
Injection beyond SQL
防御 DOS
Regex DOS
Logical DOS
DDOS
传输层————防御中间人
HRTP 的一些特性
HTTP————完整性
数字签名
HTTP————不可抵赖:数字签名
HTTP————证书 续
成也证书,败也证书
补充
-
安全无小事
-
使用的依赖性(npm package ,甚至是NodeJS)可能成为最薄弱的一还
-
保持学习心态