我创建了一个注册表单,我将输入发布到名为postRegistration的路由。我想保护这条路线(我猜测过滤器可以在这里使用),以确保只处理来自称为注册的路由的请求。否则,我想指向另一条路线,即路线索引。
这是我的路线文件:
Route::get('/', 'MainController@index');
/*Registration Routes*/
Route::get('signup', array('as' => 'signup', 'uses' => 'MembersController@loadRegistration'));
Route::post('postRegistration', array('as' => 'postRegistration', 'uses' => 'MembersController@registration'));
如何使用过滤器进行此保护?我应该包含哪些内容以使其更安全(例如,为CSRF过滤?)?
谢谢,
答案 0 :(得分:0)
CSRF令牌就是这么做的。它确保发布的值来自您希望它们来自的URL。以下是如何做到的:
Route::group(['before' => 'csrf'], function() {
Route::post('postRegistration', array('as' => 'postRegistration', 'uses' => 'MembersController@registration'));
});
您还必须更新app/filters.php
以处理所需的重定向:
Route::filter('csrf', function()
{
if (Session::token() != Input::get('_token'))
{
//throw new Illuminate\Session\TokenMismatchException;
return Redirect::to('/');
}
});