/**
* Set CSRF Hash and Cookie
*
* @return string
*/
protected function _csrf_set_hash()
{
if ($this->_csrf_hash === NULL)
{
// If the cookie exists we will use its value.
// We don't necessarily want to regenerate it with
// each page load since a page could contain embedded
// sub-pages causing this feature to fail
if (isset($_COOKIE[$this->_csrf_cookie_name]) && is_string($_COOKIE[$this->_csrf_cookie_name])
&& preg_match('#^[0-9a-f]{32}$#iS', $_COOKIE[$this->_csrf_cookie_name]) === 1)
{
return $this->_csrf_hash = $_COOKIE[$this->_csrf_cookie_name];
} $rand = $this->get_random_bytes(16);
$this->_csrf_hash = ($rand === FALSE)
? md5(uniqid(mt_rand(), TRUE))
: bin2hex($rand);
} return $this->_csrf_hash;
}

    令牌(tokens)默认会在每一次提交时重新生成,或者你也可以设置成在 CSRF cookie 的生命周期内一直有效。———— 有安全隐患吧。 这样会减少服务器的负荷.

默认情况下令牌重新生成提供了更严格的安全机制,但可能会对 可用性带来一定的影响,因为令牌很可能会变得失效(例如使用浏览器的返回前进按钮、 使用多窗口或多标签页浏览、异步调用等等)。你可以修改下面这个参数来改变这一点。

      $config['csrf_regenerate'] = TRUE;  //这种情况下,每次提交表单后,都会重新生成token。(1) 重复提交一个页面会失败。(2)用浏览器的返回前进按钮,会因为令牌不一致出错。—— 生成了新的令牌值,而“后退”过去的那个页面不刷新的话,依然使用的是旧的令牌值!
       将其设置为false即可。
      $config['csrf_expire'] = 7200;    
      $config['csrf_regenerate'] = false;
 

最新文章

  1. web前端性能优化
  2. 关于如何将Excel数据导入到SQL Server中
  3. 深入浅出Java并发包—锁机制(一)
  4. iOS UDID和UUID详解
  5. PYTHON queue
  6. Wormholes 最短路判断有无负权值
  7. border-radius讲解2
  8. fork,exec,source
  9. linux 安装所有软件可以使用这个网站搜索RPM包
  10. spring boot 的参数配置。
  11. iOS开发之--复制粘贴功能
  12. JavaSE学习总结(八)—— 异常处理(Exception)
  13. maven项目, 单元测试失败提示 Class not found datastorage........
  14. Python实现爬虫设置代理IP和伪装成浏览器的方法(转载)
  15. excel 数字转文本
  16. uva11383 转化为 二分图匹配
  17. DATASNAP远程方法返回TSTREAM正解
  18. 使用wblockCloneObjects从后台读取dwg文件复制实体到当前数据库
  19. 更新user的方法
  20. MySQL级联删除和级联修改

热门文章

  1. python_14(js)
  2. 牛客网Java刷题知识点之多线程同步的实现方法有哪些
  3. centos7 更换jdk版本
  4. 满足java对redis的所有操作,token,验证码过期时间等
  5. vs2013修改为双击打开文件
  6. asp.net调试技巧
  7. 定时任务-Timer
  8. Solr6+IKAnalyzer分词环境搭建
  9. Sass基本特性
  10. 解析 MFC 中的 FromHandle