Andrey
Публичное апи - тогда фрон при авторизации обращается к бэку за получением токена (и потом например в куки его кладет)
Andrey
и при каждом запросе к апи передает токен в заголовках
Andrey
В этом и суть rest api, что каждый запрос к нему - не зависит от другого абсолютно
Siarhei
Есть 2 кейса: 1. Ограничить на уровне хоста (по сути просто не ставить Access Origin заголовки) 2. Ограничить для конкретных пользователей (фронтов)
Andrey
то есть, на каждый запрос идет заголовок авторизации
Siarhei
Ага
Siarhei
А как мне узнать, что я могу ему выдать токен?
Siarhei
Я должен ему тоже что-то послать, верно?
Siarhei
Какие-то логин/пароль
Siarhei
Или тоже токен
Siarhei
И вот вопрос: как это хранить на фронте?
Andrey
Конечно, клиент шлет для авторизации логин/пароль
SiZE
А как мне узнать, что я могу ему выдать токен?
через подтверждение кренделей
Andrey
ты возвращаешь токен, вот токен он у тсебя и хранит
Andrey
и потом только его и шлет в каждом запросе
SiZE
https://www.google.ru/search?q=js+store+token
Siarhei
Потом понятно
Siarhei
Самое интересное — это первый запрос
SiZE
хост легко подменить если что )
Andrey
Ну твой бек на основе логина и пароля же проверят юзера, значит их и дожен получить
Siarhei
А если не на уровне авторизации юзера, а на уровне авторизации приложения?
Andrey
то есть?
Siarhei
Т.е. небезопасно хранить же токен или credentials просто хардкодом
Siarhei
Сейчас попробую пример
Andrey
вобще, у тебя классическая тема авторизации для апи. Покури тот же oauth
Andrey
Т.е. небезопасно хранить же токен или credentials просто хардкодом
Ну это как куки, что браузер хранит и авторизует тебя на сервисах
Andrey
Опасно их хранить?
Siarhei
Но они у конкретного пользователя, хотя тоже опасно
Andrey
Ведь если я их украду, я под тобой зайду в условную вконташу
Siarhei
Ну да ладно, у меня видимо паранойя :)))
Andrey
У клиента должен быть какой-то ключ, который он предявлеяет серверу. Как по другому то)
Dmitriy
Andrey
да, если у клиента сопрут куку, то могут авторизоваться. пробуй на сервере проверть соответствие кук и ip, useragent и т/д/
Andrey
я даже на это посмотрю. куки дать от вк ?
Вконташа - условно. Написано же
Andrey
Многие другие сервисы - не условно
Andrey
Зачем через слово читать)
Siarhei
А если так: я генерирую во вьюхе в js какой-то токен каждый раз при загрузке страницы, а потом использую его для получения нового токена?
Siarhei
И получается токен знает только этот фронт
Siarhei
По сути как csrf-токен
Siarhei
Бляха, я туплю короче, получается достаточно того, что уже есть
Siarhei
Если это все крутится на одном хосте
Siarhei
Поставить csfr даже для получения ресурса
Siarhei
А laravel же генерит его из коробки
Siarhei
И получается, что кроме этого фронта никто данные не получит
Siarhei
Хотя опять же глупо все наверное это. Я могу зайти на сайт, перейти во вкладку Network и взять то, что мне нужно
Andrey
Если у тебя бэк генерит фронт (как я в начале спросил!) то да, ты просто в тег <meta name="csrf-token" content="{{ csrf_token() }}"> далаешь
Andrey
и потом на фронте этот токен в запросы пихаешь
Siarhei
Ага
Siarhei
Так и делаю
Siarhei
Но только сейчас допёр : )
Siarhei
Спасибо!
Andrey
Хотя опять же глупо все наверное это. Я могу зайти на сайт, перейти во вкладку Network и взять то, что мне нужно
Если злоумышленник сел за твой комп и начал вкладку network смотреть, куки качать - то пробелма у тебя в другом уже)
Siarhei
https://mumimaps.com/
Siarhei
Вот такой вот проект у меня
Siarhei
Там я через api тащу все точки на карте
Andrey
Это как пытаться защитить мобильное приложение от того, что телефон украдут прямо в то время., когда это прилоежние открыто и работает (банк-клиент например)
Siarhei
И я вот думаю, как защитить это, чтобы их кто-нибудь так просто не спер
Siarhei
Ведь там во вкладке Network есть все ресурсы
Andrey
Ну так вкладка эта НА ТВОЕЙ СТОРОНЕ же)
Andrey
Ну вон мой пример с приложением банк клиент
Andrey
Ну сравни)
Siarhei
Так там это все без авторизации : )
Siarhei
В моем случае
Siarhei
Т.е. любой человек заходит на сайт
Andrey
Почему? При входе в приложение первый раз юзер вводит же логин пароль?
Siarhei
Про приложение да
Siarhei
Я про свой случай
Andrey
Как-то ты ведь его аутентифицируешь?
Siarhei
Пока никак, авторизация на моем сайте нужна чтобы оставить коммент
Andrey
Ты меня запутал. Или себя
Andrey
А тогда что ты пытаешься защитить?
Anonymous
Если это всё по api получается, тебе никак не защитить
Siarhei
Смотри, в твоем случае с приложением — я понимаю, все верно.
Andrey
Если у етбя общедоступные данные
Siarhei
Если это всё по api получается, тебе никак не защитить
А я вот наивный думаю как, но по ходу никак : (
Siarhei
Да
Siarhei
Именно : )