2014-06-29 109 views
1

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

我总是使用Route::controller将路由绑定到我的控制器,但是从Web安全的角度来看它是否安全?这种方法可能有哪些可能的警告?什么是明确地绑路由控制器方法,像这样的好处:我一直在犹豫是否允许Laravel解决控制器 方法

Route::get('user', '[email protected]')

代替

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

+0

深入到Laravel的源代码,你将有第一手很好的启示:-) – menjaraz

回答

1

以RESTful方式安全

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

什么是明确搭售路线的好处控制器 方法

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

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

+0

我读的地方,它是“不太安全”,但笔者从来不给解释。感谢您清理它。 – Onion

+0

我不认为有任何风险,但显式路由更好,欢迎您:-) –

1

有没有必要担心安全,它是安全的。 当您使用RESTful路由时,它更易于维护,并且您的路由文件不会充满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一样安全。

希望这有助于你;)