2015-01-13 5 views
0

Если у меня есть эта строка кода в моем routes.php файле:Laravel маршрутизации и защиты от CSRF

Route::when('*', 'csrf', array('post', 'put', 'patch', 'delete')); 

ли мне еще нужно сделать?

Route::group(array('before' => 'csrf'), function() { 
    Route::post('/search', array(
     'as' => 'search-post', 
     'uses' => '[email protected]' 
    )); 
}); 

Или это нормально, чтобы это сделать?

Route::post('/search', array(
    'as' => 'search-post', 
    'uses' => '[email protected]' 
)); 
+0

Попробуйте, я бы сказал! – MisterBla

+0

Как я могу проверить, работает ли это? Я не знаком с защитой CSRF. – rotaercz

+1

Удалите токен CSRF из вашей формы, отправьте его и проверьте, есть ли у вас ошибка. СЛЕДУЕТ бросить исключение. – MisterBla

ответ

3

Route::when фильтры (внутренне называемые шаблонные фильтры) называются непосредственно перед фильтрами before. Вы все хорошо, просто используя свои маршруты в обычном режиме.

Вот соответствующий исходный код:

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

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

Как вы можете видеть первый Узор фильтры будут называться. Если они возвратят какой-либо ответ, он будет возвращен отсюда, иначе будет вызван «нормальный» перед фильтрами.

+0

Вы отвечаете на многие мои вопросы, и я хочу сказать спасибо публично. Когда я запустил сайт, там будет крик. Я хотел бы поблагодарить вас там. Должен ли я добавить вас в качестве лукасгейтера или вы хотите, чтобы я записал ваше имя? – rotaercz

+0

Вы очень приветствуетесь :) Ну, «lukasgeiter» на самом деле мое имя. Вы можете написать «Лукас Гейтер», если хотите;) – lukasgeiter

+0

Сделаю, и я пришлю вам ссылку! :) – rotaercz

2

Да; вы должны быть в безопасности только с Route::post('/search', [...]);.

Смежные вопросы