2024-11-10 日报 Day2
今日的鸡汤
于高山之巅,方见大河奔涌;于群峰之上,便觉长风浩荡。
As the top of the mountain, one can see the rushing river; Above the peaks, i feel the long and mighty wind.
今日学习内容
1、《网络是怎样连接的》 P13 - P74
今日笔记
1、GET、POST、PUT、DELETE
- GET: 从服务器获取资源
GET用于获取资源。请求参数附加在 URL 中,因此这些参数可以被缓存、记录到日志中,并且可能暴露在网络中,容易被拦截。 - POST:用于提交数据或创建资源。
数据在请求体中,表面上看似比 GET 更安全,实际上 POST 也存在被拦截的风险,尤其是通过明文 HTTP 传输时。 - PUT和DELETE:用于更新和删除资源。
在RESTful API中,PUT和DELETE用于更新和删除资源。HTTP中的PUT、DELETE等请求不被认为安全,主要是因为它们旨在修改服务器上的资源、这些方法未必包含足够的安全机制来验证请求者的权限、容易受到跨站请求伪造(CSRF)等安全攻击。
Reference: https://docs.pingcode.com/ask/244551.html
2、CSRF(Cross-site request forgery)跨站请求伪造
- CSRF是一种网络攻击,它利用用户已登录的身份在用户不知情的情况下以用户的名义发送恶意请求。
- CSRF Token:
- 生成一个唯一的CSR Token并附加到每一个请求
- 服务器接收请求后,验证请求中的Token是否有效
- 每次生成的Token都是独立的、随机的,攻击者无法伪造
- 同源检查:
- 服务器检查请求来源的Referer或Origin头部,确保请求来自合法的源
- 如果Origin或Referer头部不匹配,服务器拒绝请求
- 例如发短信……
- 使用双重Cookie验证
- 用户登录时,将一个CSRF Token存储在Cookie中,同时在每个请求中都带上相同的CSRF Token
- 服务检验请求携带的Token和Cookie中的Token是否匹配
- 设置Cookie的SameSite属性
- 将Cookie的SameSite属性设置为Strict或Lax,可以防止CSRF攻击
- SameSite=Strict:只有在同源请求时才会发送Cookie
- SameSite=Lax:允许部分第三方请求(如 GET 请求)使用,但可以阻止大多数 CSRF 攻击。
Reference: https://portswigger.net/web-security/csrf
术语
- CSRF(Cross-site request forgery): 跨站请求伪造
- web security vulnerability: 网络安全漏洞