【问题标题】:is it safe to pass the user to view in laravel?让用户在 laravel 中查看是否安全?
【发布时间】:2016-09-16 04:05:54
【问题描述】:

是吗?我的意思是,如果您使用$user = Auth::user(); 获取用户,然后使用return view ('somepage')->with('user',$user); 将其发送到视图,则浏览器将获取视图中的所有用户数据(uername、密码、user_id 等)。我知道您可以展示您喜欢的内容,例如 {{$user->username}},但关键是,“黑客”、“脚本小子”或类似的人是否可以通过某种方式访问​​其余数据?

【问题讨论】:

    标签: laravel view blade


    【解决方案1】:

    Auth::user() 无论如何都可以从所有视图中访问。

    浏览器不会获取所有信息,例如passworduser_id 等。浏览器仅获取 Blade 模板引擎生成的 HTML,并且仅包含您想要共享的内容。

    例如,你会做{{ Auth::user()->username }},浏览器会得到username,但没有别的。

    【讨论】:

    • 没有?如果我在控制器中 dd($user) 将其传递给视图之前,我会得到一切。如果我 print_r($user);在我看来,我得到了全部。
    • dd() 显示变量的内容。收藏等。当然它会显示一切。在实际应用中,您永远不会使用 dd()var_dump() 或类似的东西。
    • 是的,我的意思是,有没有办法让第三方拦截发送到视图的集合并像使用 var_dump 或类似方法一样显示它?
    • 不,例如,任何浏览器或 JS 代码都无法从 Auth::user() 获取密码。那是服务器端的事情。 Blade 和 PHP 使用了很多东西来生成 HTML。
    • 如果你想在 auth::user 中隐藏一些东西,你可以在模型中使用 $hidden ['password','phone']
    猜你喜欢
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2017-02-10
    • 2018-08-02
    • 2018-10-15
    • 2015-01-22
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多