【问题标题】:Laravel - is Route::controller safe?Laravel - Route::controller 安全吗?
【发布时间】:2014-07-09 13:27:05
【问题描述】:

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

我总是使用Route::controller 将路由绑定到我的控制器,但从网络安全的角度来看它是否安全?这种方法可能有哪些警告?将路由显式绑定到控制器方法有什么好处,如下所示:

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

而不是

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

【问题讨论】:

  • 深入研究 Laravel 的源代码,您将获得第一手的洞察力:-)

标签: php security laravel laravel-routing


【解决方案1】:

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

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

将路由显式绑定到控制器有什么好处 方法

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

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

【讨论】:

  • 我在某处读到它“不太安全”,但作者从未给出解释。感谢您清理它。
  • 我认为没有任何风险,但显式路由更好,欢迎您:-)
【解决方案2】:

没有必要担心安全,它是安全的。 当您使用 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 一样安全。

希望对你有所帮助;)

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2020-01-27
    • 2017-01-14
    • 1970-01-01
    • 2014-11-17
    • 1970-01-01
    • 2013-10-06
    • 2013-10-13
    • 2014-02-14
    相关资源
    最近更新 更多