当我需要在laravel中创建某种形式时,我使用单一路径进行表单显示和保存。出于这个原因,我需要使用感觉不对的Route::any('login', 'LoginController@login')
。
例如我的典型登录表单控制器方法:
public function login()
{
// handle submit
if(\Input::isMethod('post'))
{
if(\Auth::attempt(array('username' => \Input::get('username'), 'password' => \Input::get('password'))))
{
return \Redirect::intended('profile');
} else {
return \Redirect::back()->withInput()
->withErrors(['auth-validation' => 'Invalid username or password']);
}
}
// show form
$this->layout->content = \View::make('frontend/login');
}
问题是:Route::any
或其他任何我从长远来看都无法想到的安全隐患?
答案 0 :(得分:1)
任何安全风险仅取决于您对请求的实际操作以及您用于响应不同动词的条件和/或检查。
但是,您可以使用match()
方法而不是any()
来限制动词:
Route::match(['GET', 'POST'], '/uri', 'Controller@method');