码上敲享录 > PHP开发经验分享 > 使用唯一随机串防CSRF攻击例子

使用唯一随机串防CSRF攻击例子

上一章章节目录下一章 2018-04-22已有2541人阅读 评论(0)

使用唯一随机串防CSRF攻击例子

解决方法:

以QQ第三方登录为例子来使用唯一随机串防CSRF攻击,网站使用qq登录方式的时候,过程就是:点击网站上qq图标--》弹出qq授权登录页面--》跳回网站某个地址上。


1.在弹出qq授权登录页面之前,执行的php代码:

//-------生成唯一随机串$state防CSRF攻击,
$state1 = md5(uniqid(rand(), TRUE));

$this->recorder->write('state',$state1;//把$state存入到session中


2.执行上面代码后,弹出授权页面,用户授权后,执行以下代码:

$state = $this->recorder->read("state");//把$state从session中读取出来
//--------验证state防止CSRF攻击
if(!$state || $_GET['state'] != $state){//$_GET['state']是授权前的$state1,和session中的state对比是否同一个人的随机数
$this->error->showError("30001");
}

本文地址:http://www.yayihouse.com/yayishuwu/chapter/1193



0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交