《白帽子讲Web安全》| 学习笔记之跨站点请求伪造(CSRF)

第4章 跨站点请求伪造(CSRF)

1、CSRF(Cross Site Request Forgery)

浏览器所持有的Cookie分为两种:一种是“Sesion Cookie”,又称“临时Cookie”;另一种是“Third-party Cookie”,也称为“本地cookie”。两者的区别在于,Third-party Cookie是服务器在Set-Cookie时指定Expire时间,只是到了Expire时间后Cookie才会失效,所以这种Cookie才会保存在本地;Session Cookie则没有指定Expire时间,所以关闭浏览器,Session Cookie就会失效。

在浏览网站的过程中,若是一个网站设置了Session Cookie,那么在浏览器的进程的生命周期内,及时浏览器心打开一个Tab页面,SessionCookie也是有效的,SessionCookie保存在浏览器进程的内存空间中。

IE处于安全的考虑,默认禁止了浏览器在<img>,<iframe>,<scrtpt>,<link>等标签中发送第三方Cookie。而Firefox中,默认策略是允许发送第三方Cookie的。

2、P3P头

P3P是一种被称为个人隐私安全平台项目(the Platform for Privacy Preferences)的标准,能够保护在线隐私权,使Internet冲浪者可以选择在浏览网页时,是否被第三方收集并利用自己的个人信息。如果一个站点不遵守P3P标准的话,那么有关它的Cookies将被自动拒绝,并且P3P还能够自动识破多种Cookies的嵌入方式。p3p是由全球资讯联盟网所开发的。

3、CSRF防御

验证码:验证码是认为对抗CSRF攻击最简洁而有效的防御方法。但是考虑到用户的体验效果,最好是在重要的操作再使用验证码。

Referer check:在互联网中最常用的应用是“防止图片盗链”,也可以被用于检查请求是否来自合法的“源”。Referer check的缺陷在于,服务器并非什么时候都能取到Referer。

Anti CSRF Token:现在业界对CSRF的防御,一致的做法是使用一个Token。

4、CSRF的本质

CSRF攻击成功的本质原因是重要操作的所有参数都是可以被攻击者猜测到的。出于这个原因一个解决方案:把参数加密,或者使用一些随机数,从而让攻击者无法猜测到参数值。
总结:

1、CSRF攻击是攻击者利用用户的身份操作用户账户的一种攻击方式。

2、CSRF与XSS最大的区别就在于,CSRF并没有盗取cookie而是直接利用。

XSS:攻击者发现XSS漏洞—构造代码——发送给受害人——受害人打开——攻击者获取受害人的cookie—完成攻击。

CSRF:攻击者发现CSRF漏洞——构造代码——发送给受害人——受害人打开——受害人执行代码——完成攻击。

猜你喜欢

转载自blog.csdn.net/qq_42646885/article/details/95215122