相关疑难解决方法(0)

Laravel 4:防止多个表单提交 - CSRF令牌

问题场景:

我正在用Laravel 4创建一个博客.负责创建新博客文章的表单由CSRF保护(Laravel Docs:CSRF Protection)构建.

到目前为止一切正常,但似乎laravel不会在每个请求上刷新csrf标记.

出现的问题是,如果用户点击浏览器的后退按钮返回提交的表单,则输入的数据仍然存在,用户可以"重新提交"表单.这可能会为垃圾邮件发送者打开一扇门.

通常这是由CSRF令牌阻止的,因为它在每次请求时都会被刷新,但是Laravel似乎并没有这样做.

我使用laravel"资源控制器"方法(Laravel Docs:Resource Controllers)来处理表单和博客帖子视图.此外,在将提交的输入存储在数据库(MySQL)中之前,我使用Laravels输入验证器.


所以出现了以下想法:

  1. 以某种方式强制Laravel 4在每次请求时自动重新生成csrf

  2. 生成另一个令牌并手动将其包含在表单中

  3. 在用户会话(php或数据库)中保存表单子目录的时间戳,并在时基上限制新表单提交

我个人更喜欢第一个想法,但遗憾的是我无法找到一种方法来强制laravel表现我想要的样子,而不会破坏"Illuminate"本身(我想保持"原样"以便能够更新laravel没有"麻烦hoff "^^).

你会推荐什么?

你是怎么自己处理这个问题的?

php forms csrf post-redirect-get laravel-4

5
推荐指数
1
解决办法
9240
查看次数

标签 统计

csrf ×1

forms ×1

laravel-4 ×1

php ×1

post-redirect-get ×1