【问题标题】:Laravel: Form display and logic in single routeLaravel:单路由中的表单显示和逻辑
【发布时间】:2015-07-10 16:55:15
【问题描述】:

当我需要在 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 或其他任何我想不到的安全风险是否存在?

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    任何安全风险仅取决于您对请求的实际操作以及您用于响应不同动词的条件和/或检查。

    但是,您可以使用match() 方法而不是any() 来限制动词:

    Route::match(['GET', 'POST'], '/uri', 'Controller@method');
    

    【讨论】:

    • 不知道有这样的方法,这似乎是路由这种事情更好的方法,谢谢!
    猜你喜欢
    • 2014-10-24
    • 2014-03-11
    • 2017-04-22
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 2014-07-21
    相关资源
    最近更新 更多