Laravel 4.2 根据请求频率生成新的 CSRF 令牌?

Posted

技术标签:

【中文标题】Laravel 4.2 根据请求频率生成新的 CSRF 令牌?【英文标题】:Laravel 4.2 generates new CSRF token depending of requests frequecy? 【发布时间】:2014-11-01 18:31:42 【问题描述】:

我在 Laravel 4.2 中遇到了 CSRF 令牌的奇怪行为。 - 令牌在请求之间发生变化(并非总是如此,而是随机变化)。

首先想到的是我在垃圾收集方面遇到了问题,或者 Laravel 中存在一些错误。甚至更多——这只发生在远程服务器上,本地一切正常。但是,服务器设置和会话配置是相同的。

php.ini 中的垃圾收集已关闭。唯一有效的 GC 是每 30 分钟由 cron 启动的 GC,但是,这也与此问题无关 - 我已经检查过。

1) 如果我不经常发送 ajax 请求(例如每秒一次)- 它可以在几个小时内正常工作。

2) 当我在短时间内(3-5 秒内 20 次)经常发送 ajax 请求时 - 在第 15 次或第 20 次请求后更改令牌。有时甚至在 10 日。

如果令牌看起来像“危险”请求,是否有一些隐藏的功能(但是我没有发现)会更改令牌,检查频率?

【问题讨论】:

我也遇到了类似的问题,你找到答案了吗? 不,我没有。只是有些奇怪。 您能否检查令牌是否无法验证并在其位置创建一个新令牌? 下面的答案对您的问题有帮助吗? 【参考方案1】:

我相信这是因为 Laravel 文件会话驱动程序不提供锁定。我建议切换到app\config\session.php 中的数据库会话驱动程序,看看你是否得到了预期的结果。

以下是相关文档:http://laravel.com/docs/4.2/session#session-drivers

【讨论】:

以上是关于Laravel 4.2 根据请求频率生成新的 CSRF 令牌?的主要内容,如果未能解决你的问题,请参考以下文章

laravel 4.2在重定向时重新生成会话

如何在 laravel 4.2 中为特定类别任务自动生成序列号?

Laravel 升级到 4.2 - 需要 mcrypt 扩展

如何在 Laravel 4.2 中返回两次?

Laravel 4.2 和 migrate 无法正常工作

login_01