要点
- CSRF
- CSRF 防护
- SSRF
- SSRF防护
一、CSRF攻击
CSRF(Cross-Site Request Forgery,跨站请求伪造):黑客通过 JavaScript 脚本窃取你保存在网页中的身份信息,通过仿冒你,让你的浏览器发起伪造的请求,最终执行黑客定义的操作。而这一切对于你自己而言都是无感知的。
二、CSRF 防护
防护方法: CSRFToken、二次验证来
- CSRFToken:在接口中,加入一个黑客无法猜到的参数,就可以有效防止 CSRF 了
- 二次验证来:用户进行敏感操作时,要求用户输入提供一些私密的信息

三、SSRF攻击
SSRF(Server Side Request Forgery,服务端请求伪造):服务端也有代理请求的功能,当用户在浏览器中输入一个 URL,然后服务端会向这个 URL 发起请求,通过访问其他的服务端资源来完成正常的页面展示。这个时候,只要黑客在输入中提交一个内网 URL,就能让服务端发起一个黑客定义的内网请求,从而获取到内网数据。这就是 SSRF(Server Side Request Forgery,服务端请求伪造)的原理。而服务端作为内网设备,通常具备很高的权限,所以,这个伪造的请求往往因为能绕过大部分的认证和授权机制,而产生很严重的后果(内网穿透)。

四、SSRF 防护
手段主要包括:白名单限制、协议限制和请求端限制
-
白名单的限制永远是最简单、最高效的防护措施:对用户提交上来的目标 URL 进行限制,比如,只允许是同一个域名下的 URL
-
对协议和资源类型等进行限制:对于使用协议,我们只允许 HTTP 或者 HTTPS 协议;对于返回的内容,我们只允许图片格式的等固定格式的内容
-
请求端限制:
1.为其他业务提供的服务接口,尽量使用 POST,避免 GET 的使用;
2.第二,为其他业务提供的服务接口,最好每次都进行验证。
网友评论