Как я могу запретить другим пользователям перехватывать полезную нагрузку HTTP-запроса как другие пользователи? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть

приложение Laravel с маршрутом

Route::put('/api/{deviceMac}/access/update','DeviceController@update');

Правило

Если у пользователя A есть deviceMac 000000000000, следует только сделать PUT для

http://www.app.com/api/000000000000/access/update
{deviceMac:000000000000, access: true}

Если у пользователя B есть deviceMac 111111111111, он должен только сделать PUT на

http://www.app.com/api/111111111111/access/update
{deviceMac:111111111111, access: true}

Пользователь A не должен иметь возможность угонять обновление маршрута других пользователей

Угон

Пользователь A должен иметь доступ только к 000000000000.

Прямо сейчас, Пользователь A может настроить HTTP-запрос и сделатьa PUT as Пользователь B

http://www.app.com/api/111111111111/access/update
{deviceMac:111111111111, access: false}

Вопросы

Как запретить другим пользователям перехватывать полезную нагрузку запроса как другие пользователи?

Должен ли янастроить промежуточное программное обеспечение для решения этой проблемы?

1 Ответ

0 голосов
/ 26 ноября 2018

Иметь систему на основе токенов.

Имеется какой-либо вход или даже что-то простое, например, когда пользователь открывает ваше приложение, вы отправляете запрос на ваш сервер с MAC-адресом текущего пользователя и генерируете токен (bin2hex(random_bytes(30)), обратите внимание, что это сгенерирует токен из 60 символов, который может или не может показаться чрезмерным), который назначен этому MAC-адресу.

Затем вы можете создать пользовательское промежуточное ПО , которое проверяетесли отправляемый MAC-адрес имеет токен И что токен совпадает с MAC-адресом, который был ему назначен при запуске.

При выходе не забудьте аннулировать токен, и если у вас нет знакаout, поддерживайте токены в актуальном состоянии (на самом деле, этот шаг рекомендуется, даже если у вас есть явная кнопка выхода).

Наконец, я настоятельно рекомендую вам обновить до последней версии Laravel по мерекажется, сильно отстает.Текущая версия 5.7 по сравнению с вашей 5.1.

...