Задать вопрос
@VoRoN1999

Как защитить get маршруты?

Есть маршруты для Ajax запросов, где ответ приходит в JSON формате. Если пользователь заходит во этому url, он видит этот массив. Как закрыть для пользователей доступ к таким маршрутам?
Laravel 6x
  • Вопрос задан
  • 269 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
@jazzus
Если закрыть сам переход юзера по маршруту и просмотр json то сделать middleware isAjax c проверкой
if (!$request->ajax()) {
 abort(404);
}
return $next($request);

При попытке зайти отдаст 404. Но это не "защита" т.к. содержимое в network всегда есть в полном составе. Лучшая защита это отдавать только те данные, которые юзер видит на странице и не больше. Т.е. использовать API Resources, protected $hidden в моделях и точно составлять json ответ
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
Fragster
@Fragster
помогло? отметь решением!
От совсем тупых поможет дополнительный заголовок в запросе, посылаемом js и проверкой его на сервере. Можно одноразовый.
Ответ написан
Комментировать
@irtf
Лучший вариант немного спрятать - делать GET-запросы из JavaScript файлов. Именно файлов, а не функций, прописанных прямо на странице. Таким образом Вы сможете немного спрятать ссылки от посторонних глаз. Но, к сожалению, скрыть полностью не получится.
Ответ написан
php666
@php666
PHP-макака
Правильный ответ - никак.
Аякс-запрос ничем не отличается от любого другого хттп-запроса.
И он не должен скрываться в нормальных условиях. И не скрывается.

Либо делай авторизацию.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Через отбивку об окончании загрузки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы