Laravel - 是Route :: controller安全吗?

时间:2014-06-29 12:58:36

标签: php security laravel laravel-routing

我一直想知道是否允许Laravel以RESTful方式解析控制器方法是安全的。

我总是使用Route::controller将路由绑定到我的控制器,但从Web安全的角度来看它是否安全?这种方法可能有什么警告?明确将路由绑定到控制器方法的好处是什么,如:

Route::get('user', 'UserController@getUser')

而不是

Route::controller('user', 'UserController');

2 个答案:

答案 0 :(得分:1)

  

我一直想知道是否允许Laravel解析控制器   RESTful方式的方法是安全的

您担心的风险是什么?这是安全的,没有安全风险。

  

明确地将路由绑定到控制器会有什么好处   方法

易于维护,更易读,更灵活(即URL可以是任何东西,你可以选择)。

我更喜欢explicit路由声明,如果您没有正确的理由使用RESTful路由,则总是更好。

答案 1 :(得分:1)

无需担心安全问题,这是安全的。 当您使用RESTful Routes时,它更容易维护,并且您的路由文件不会充满Route :: get,Route :: post。

使用Route :: controller时,Laravel将分析您的方法名称。这样你可以这样做:

// app/routes.php
Route::controller('/user', 'UsersController');

// app/controllers/UsersController.php
class UsersController extends BaseController 
{
    public function getIndex() 
    {
        return 'GET request to /user';
    }

    public function postIndex()
    {
        return 'POST to /user';
    }

}

正如您所见,laravel会自动检测要使用的HTTP方法(GET / POST / PUT / DELETE)。 这样您就不必在routes.php中指定所有路由,而只需使用Route :: controller。

同样,Route :: controller和Route :: get一样安全。

希望这可以帮助你;)