Laravel - CSRF保护无法正常工作

时间:2014-08-03 10:20:17

标签: php laravel filter controller

所以,我有一个RESTful控制器,这意味着我必须在控制器中定义CSRF过滤器用法。我已经查明了它是如何工作的,我很确定我应该做些什么。遗憾的是,即使我从表单中删除令牌,它仍然提交正常并且不会出错。这是我的控制器的构造函数:

$this->beforeFilter('csrf', array('only' => 'post'));

$teams = Team::all();
$streamers = Streamer::all();

View::share('teams', $teams);
View::share('streamers', $streamers);

在我的表单中,我只是使用 {{Form :: token()}} ,即使我删除它仍然有效。

1 个答案:

答案 0 :(得分:1)

更改此

$this->beforeFilter('csrf', array('only' => 'post'));

到这个

$this->beforeFilter('csrf', array('on' => 'post'));

<强>释

onlyexcept用于控制器方法(索引,显示,更新,...),on用于HTTP方法(post,get,put,delete)

修改

如果仍然无效,请粘贴CSRF过滤器(如果已编辑)。还要确保您的路线正确。如果您在BaseController中定义了beforeFilter,请确保控制器中的其他控制器包含parent::__construct()(如果存在)。