Php Laravel路由和CSRF保护

Php Laravel路由和CSRF保护,php,laravel,csrf,Php,Laravel,Csrf,如果我的routes.php文件中有这行代码: Route::when('*', 'csrf', array('post', 'put', 'patch', 'delete')); 我还需要这样做吗 Route::group(array('before' => 'csrf'), function() { Route::post('/search', array( 'as' => 'search-post', 'uses' => 'Sea

如果我的routes.php文件中有这行代码:

Route::when('*', 'csrf', array('post', 'put', 'patch', 'delete'));
我还需要这样做吗

Route::group(array('before' => 'csrf'), function() {
    Route::post('/search', array(
        'as' => 'search-post',
        'uses' => 'SearchController@postSearch'
    ));
});
或者这样做可以吗

Route::post('/search', array(
    'as' => 'search-post',
    'uses' => 'SearchController@postSearch'
));

对,;只需使用
Route::post('/search',[…])就可以安全了

是;只需使用
Route::post('/search',[…])就可以安全了
路由::当
过滤器(内部称为模式过滤器)在
过滤器之前调用时。你们都能正常使用自己的路线

以下是相关的源代码:

public function callRouteBefore($route, $request)
{
    $response = $this->callPatternFilters($route, $request);

    return $response ?: $this->callAttachedBefores($route, $request);
}

正如您首先看到的,将调用模式过滤器。如果它们返回任何响应,它将从这里返回,否则将调用“正常”前过滤器。

路由::当
过滤器(内部称为模式过滤器)在过滤器之前调用时。你们都能正常使用自己的路线

以下是相关的源代码:

public function callRouteBefore($route, $request)
{
    $response = $this->callPatternFilters($route, $request);

    return $response ?: $this->callAttachedBefores($route, $request);
}

正如您首先看到的,将调用模式过滤器。如果他们返回任何响应,它将从此处返回,否则将调用“正常”前置过滤器。

如何检查它是否正常工作?我不熟悉CSRF保护。请从表单中删除CSRF令牌,提交它并检查是否有错误。它应该抛出一个异常。@rotaercz在浏览器的开发工具中,更改
input type=“hidden”name=“\u token”
字段的值。或者@ceejayoz说的,你们真是太棒了。我马上回来。我怎么能检查它是否正常工作?我不熟悉CSRF保护。请从表单中删除CSRF令牌,提交它并检查是否有错误。它应该抛出一个异常。@rotaercz在浏览器的开发工具中,更改
input type=“hidden”name=“\u token”
字段的值。或者@ceejayoz说的,你们真是太棒了。我马上回来。你回答了我很多问题,我想公开表示感谢。当我启动这个网站时,将会有一个叫喊区。我想在那里感谢你。我加上你的名字是卢卡斯盖特,还是你想让我把你的名字放在那里?不客气:)嗯,“卢卡斯盖特”实际上是我的名字。如果你愿意,你可以写“卢卡斯·盖特”可以,我会给你发一个链接!:)你回答了我很多问题,我想公开表示感谢。当我启动这个网站时,将会有一个叫喊区。我想在那里感谢你。我加上你的名字是卢卡斯盖特,还是你想让我把你的名字放在那里?不客气:)嗯,“卢卡斯盖特”实际上是我的名字。如果你愿意,你可以写“卢卡斯·盖特”可以,我会给你发一个链接!:)