Безопасно ли сохранять информацию о проверенном пользователе в окне? - PullRequest
0 голосов
/ 02 декабря 2018

Я использую laravel vue.В моей первой загрузке страницы я пытаюсь назначить пользователя авторизации как это.В моем блейд-файле я использую

<script>

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


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

Мой вопрос: может ли пользователь каким-либо образом манипулировать этим окном из браузера?Я не использую это непосредственно, вместо этого я использую это от vuex.

Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018

Да, они могут манипулировать.

Пожалуйста, не ленитесь о реализации проверки бэкэнда на вашей бэкэнд-стороне.

0 голосов
/ 02 декабря 2018

Пользователь может изменить содержимое window.user, но это не должно иметь значения: ваша задача проверять любые данные, которые пользователь отправляет обратно на сервер.Например, ваше представление может содержать форму для изменения имени пользователя.Вы могли бы сделать это следующим образом:

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

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

Это было бы плохой идеей, поскольку пользователь мог бы использовать форму для изменения любого имени пользователя.Вместо этого получите текущего пользователя в контроллере:

$user = Auth::user();
$user->name = request('username');
$user->save();

Кроме того, я бы не стал помещать логику аутентификации в файл Blade.Вместо этого я подготовил бы соответствующие данные внутри контроллера и передал их в представление (что-то вроде return view('user.show', compact('user'));)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...