在窗口中保存经过身份验证的用户信息是否安全?

时间:2018-12-02 19:17:15

标签: javascript laravel-5 vuejs2

我正在使用laravel vue。在我的第一页加载中,我尝试像这样分配auth用户。在我的刀片文件中,使用

<script>

    (function () {
        window.Laravel = {
            csrfToken: '{{ csrf_token() }}'
        };


        @if(Auth::check())
          window.user={!! Auth::user() !!}
         @else
            window.user=false
         @endif
    })();
  </script>

我的问题是,用户可以通过浏览器以某种方式操纵此窗口吗? 我不直接使用它,而是从vuex使用它。

非常感谢。

2 个答案:

答案 0 :(得分:1)

用户可以更改keyExtractor的内容,但这无关紧要:验证用户发送回服务器的任何数据是您的任务。例如,您的视图可能包含用于更改用户名的表单。您可以这样做:

window.user

这不是一个好主意,因为用户可以使用表格更改任何用户名。而是在控制器中获取当前用户:

// View
$.ajax({
  ...
  data: {
    username: 'New Name',
    id: id,
  }
});

// Controller
$user = User::find(request('id'));
$user->name = request('username');
$user->save();

此外,我不会将身份验证逻辑放在Blade文件中。相反,我会在控制器中准备相关数据并将其传递给视图(类似$user = Auth::user(); $user->name = request('username'); $user->save();

答案 1 :(得分:1)

是的,他们可以操纵。

请不要对在后端实现后端验证感到zy懒。

相关问题