您的位置:首页 > 其它

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

2016-04-05 12:45 232 查看
一.CSRF是什么?

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

二.CSRF可以做什么?

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

[b]三. CSRF攻击模式图[/b]



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

[b]四. CSRF防范[/b]

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框的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: