界面安全性系列1-CSRF攻击

一.CSRF是什么?

  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

二.CSRF可以做什么?

  你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

三. CSRF攻击模式图

其实就是在浏览器存了a的凭证,认为通过该客户端过来的访问通过了认证,而B可能是web 可能就是个邮件里面的恶意链接,只要用户访问了,即可以盗用a的凭证干坏事。


四. CSRF防范

1. 服务端csrf token

在服务器端输出页面时候增加一个随机key value的token值,这样所有a网站的页面等于有一个随机参数,这样在a网站提交的所有请求中都要去验证这个参数的正确性。这样B就无法获取到这个随机值,而验证失败,任何提交访问都会返回错误

2. cookie值的md5

这个和1类似,将当前站点cookie,生成的md5传到后台进行验证。这样B无法跨站获取到A的cookie,无法构造出该参数。

3. 验证码

这个就是在任意表单提交都增加验证码功能。B当然就不行了。


总结,当然我推荐1这个方式,而且我们目前网站使用的phalcon框架自带了security csrf token的一系列函数,直接使用方式一

<input id="token" type="hidden" name="<?php echo $this->security->getTokenKey()?>"
               value="<?php echo $this->security->getToken() ?>" />

POST后只需要$this->security->checkToken() 验证这个函数成功即可。

使用ajax也可以带上这个id为token的input框的值。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值