繁体   English   中英

Laravel路由和CSRF保护

[英]Laravel routing and CSRF protection

如果我的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::when过滤器(内部称为模式滤波器 )权之前调用before的过滤器。 只要正常使用路线,一切都很好。

这是相关的源代码:

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

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

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

是; 仅使用Route::post('/search', [...]);您应该很安全Route::post('/search', [...]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM