09.06.2020, 09:13
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Это ошибка безопасности при работе с api или нет?
Привет.
Человек выставил свой пример сборки на vue и там данные берутся из API стороннего сервиса. Доступ по ключу, который он в личном кабинете на том сайте получил.
И вот этот ключ прекрасно виден всем посетителям сайта.
На php обычно все такие вещи скрыты, даже от членов одной команды - окружение локальное vs prod.
А тут открытенько.
Ну допустим там информация может не такая ценная, но в общем то - он нарушил тут ? Есть какие то стандарты вот такой работы с закрытым API, когда из js-а виден запрос к API? (когда это не один сайт с аутенификацией и т.д.)
|
|
09.06.2020, 13:11
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Если проект для «поиграться», то пофигу светится ли api-key или нет, если нет, то стоит скрыть api-key, например проксируя запросы своим сервером.
Если api-key жестко привязан к конкретному домену, то тут опять пофигу светится он в приложении или нет.
Если у production окружения уведут api-key стороннего сервиса, который никак не защищен, то у злоумышленника появится возможность нарушить работу сервера жертвы, например, путем превышения всевозможных лимитов при работе с api.
|
|
09.06.2020, 13:43
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Сообщение от Nexus
|
Если проект для «поиграться», то пофигу светится ли api-key или нет, если нет, то стоит скрыть api-key, например проксируя запросы своим сервером.
|
Ну там явно поиграться, но звоночек то неприятный, сам факт что так решил делать
Сообщение от Nexus
|
Если api-key жестко привязан к конкретному домену, то тут опять пофигу светится он в приложении или нет.
|
А как ихний сервер определит с какого домена и откуда этот запрос?
Сообщение от Nexus
|
Если у production окружения уведут api-key стороннего сервиса, который никак не защищен, то у злоумышленника появится возможность нарушить работу сервера жертвы, например, путем превышения всевозможных лимитов при работе с api.
|
Ну вот у меня мысли такие же, чтобы мне самому не регаться у них (вдруг это платно), спокойно взял посмотрел ключик у того веб мастера
|
|
09.06.2020, 13:51
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от micscr
|
А как ихний сервер определит с какого домена и откуда этот запрос?
|
С помощью заголовков.
|
|
09.06.2020, 13:59
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Все эти заголовки, рефереры, подделываются легко
|
|
09.06.2020, 14:03
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от micscr
|
Все эти заголовки, рефереры, подделываются легко
|
Из браузера заголовок Origin подменить не выйдет, другое дело, если это будет сервер.
В общем согласен с вами, что привязка ключа к домену - не защита вовсе.
|
|
09.06.2020, 14:47
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Да нет у меня никакой иллюзии. Ноду я не упоминал т.к. с ней не работаю на сервере, а так то понятно что она, что php в этом контексте взаимозаменяемы.
Меня удивило что тот человек такое в коде отморозил, поэтому и поинтересовался, может какой есть хитрый способ на фронте такое проворачивать. Но уже понял что нет, без бэкенда не обойтись, что славно.
As a rule of thumb, never include credentials in client side JavaScript.
|
|
|
|