CSRF和SSRF原理、区别、防御方法

CSRF(Cross-Site Request Forgery)原理:CSRF是一种由攻击者构造形成,由服务端发起请求的一个安全漏洞。它是一种利用用户在已登录的网站中提交非法请求的行为,攻击者通过伪造用户提交的请求,将恶意请求发送至受信任的网站,导致用户在不知情的情况下执行恶意操作。

SSRF(Server Side Request Forgery)原理:SSRF是一种服务器端请求伪造的安全漏洞。它是由攻击者构造形成,由服务端发起的请求。由于服务端对用户提供的可控URL地址过于信任,没有经过严格检测,攻击者可以以此为跳板攻击内网或其他服务器。

两者区别:CSRF是用户端发起请求,攻击者利用用户的Cookie信息伪造用户请求发送至服务器;而SSRF是服务端发起的请求,攻击者通过构造指定URL地址获取网页文本内容、加载指定地址的图片、下载等方式,利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。

在防御方面,可以采用以下方法:

1.禁止跳转;

2.过滤返回信息,验证远程服务器对请求的响应是否符合标准;

3.禁用不需要的协议,如file://, gopher://, ftp://等;

4.设置URL白名单或限制内网IP(使用gethostbyname()判断是否为内网IP);

5.限制请求的端口为http常用的端口,例如80、443、8080、8090等;

6.统一错误信息,避免用户根据错误信息判断远端服务器的端口状态。

你可能感兴趣的:(漏洞,网络安全,面试题,漏洞,网络安全)