我一直想知道是否允许Laravel以RESTful方式解析控制器方法是安全的。
我总是使用Route::controller
将路由绑定到我的控制器,但从Web安全的角度来看它是否安全?这种方法可能有什么警告?明确将路由绑定到控制器方法的好处是什么,如:
Route::get('user', 'UserController@getUser')
而不是
Route::controller('user', 'UserController');
答案 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一样安全。
希望这可以帮助你;)