Web安全之CSRF及防护方式
什么叫做CSRF? CSRF(Cross-site request forgery)简称:跨站请求伪造,跟XSS攻击一样,存在巨大的危害性。在CSRF的攻击场景中,攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了,所以CSRF攻击也称为one-click attack。 与XSS相比,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。 HTTP是无状态协议,服务器只能根据当前请求的参数(包括Head和Body的数据)来判断本次请求需要达到的目的(Get或者Post都一样),服务器并不知道这个请求之前干了什么事,这就是无状态协议。 如何让每次HTTP请求都带上登录态信息,所以就出现了Cookie。登录状态Cookie是浏览器默认自动携带的,我们在浏览器上发送HTTP请求的时候,浏览器会把该域名下的Cookie带上,一并发送到服务器。那么问题就来了,浏览器不管当前发送请求的是哪个网站,在哪个页面上发送的请求,只要你发送请求的域名在服务器的浏览器里没有选择的保存或者有Cookie之类的信息,服务器的浏览器都会一并带上。 CSRF攻击过程: (1)用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A; (2) 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A; (3) 网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。这种情况下,如果a不知道b的cookie信息,那么就不会触发恶意代码,但是如果a不知道b的cookie信息,那么就会触发恶意代码。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |