2018-03-29

CSRF的攻击与防御

一、CSRF简介

CSRF(Cross-Site Request Forgery,跨站点伪造请求)是一种网络攻击方式,大体的意思就是黑客利用的你身份去伪造一个真实的请求,发送给服务器。比如用你的名字购买商品、发送 邮件、盗取你的账号等。

二、CSRF漏洞的原理

简单的身份验证只能保证请求发自某一个用户的浏览器,去不能保证请求本自身是用户自愿发出来的。
如上图所示:
1.用户C :浏览并登陆信任网站Web(A);
2.web A (受信任的网站):验证通过,在用户处(C)产生A的Cookie;
3.用户C在没有登出网站A的情况下,访问了危险网站Web(B)
4.B要求访问第三方站点(A),发出一个请求(requset)给用户(C)——
5.根据Web(B)恶意网站的请求,游览器带用户C产生的cookie访问Web(A)受信任的网站并在用户A毫不知情的情况下做恶意操作,如转账 购买商品等.....

三、CSRF利用前提条件

1.登录信任网站A,并在本地生成Cookie。
2.在不退出的情况下,访问危险网站B。
不满足以上两个条件中的一个,就不会收到CSRF的攻击。

四、CSRF的防御

1.检查HTTP头部Refef信息,这是防范CSRF的最简单实现的一种方法。
2.使用一次性令牌,方式是对于GET请求,在URL里面加入一个令牌。对于Post请求,在隐藏域中加入一个令牌,
3.使用验证图片,这种方法作用是对于机器人暴力攻击的防止。

五、CSRF 攻击的方法

1.对于GET 请求的 CSRF 漏洞的攻击方式

GET请求方式使用的频率最高,隐式的 GET 请求,例如

你可能感兴趣的:(2018-03-29)