. Каков риск с простым 1 ключом REST API? - PullRequest
0 голосов
/ 17 ноября 2018

Пожалуйста, прости меня, если это глупость, а не мое поле.

Скажи, что я хотел бы предоставить API для моих пользователей, например:

www.mydomain.com/USER-API-KEY/some-user-data

Где USER-API-KEY16 символов и цифр уникального идентификатора для каждого пользователя, известного только ему.

Скажем, пользователь использует это для записи данных на сервер (Amazon / Firebase и т. Д.).

Почему этот API считаетсябыть небезопасным ?Есть ли способ сделать этот API более защищенным от атак, сохранив эту простоту?

1 Ответ

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

Какие риски вы принимаете, полностью зависит от вас. Передача конфиденциальной информации (например, токена доступа или ключа API) в URL имеет свои риски, но вы можете принять эти риски на себя.

Несколько вещей, которые приходят на ум:

  • URL-адреса регистрируются. Они регистрируются на промежуточных прокси, а также на сервере, который фактически обслуживает ваш API. Злоумышленник может получить доступ к этим журналам, скомпрометировав ключи API.

  • На самом деле не связано с безопасностью, но изменение ключа API в вашей схеме сделает недействительными все кэшированные результаты, что может оказать потенциальное влияние на производительность, если ключи часто меняются (как и должно быть, особенно если вы отправив их в URL).

  • Некоторые из ваших клиентов могут иметь явную политику против отправки конфиденциальных данных в URL. Это означает, что риск в вашем решении не только технический, он также имеет «сторону отношений с клиентом», если хотите.

Таким образом, вкратце, лучшая практика безопасности - не отправлять подобные ключи API. Если вы сделаете это, скорее всего, в последующем тесте на проникновение он будет признан уязвимым.

Вы все еще можете решить сделать это, и, честно говоря, это, вероятно, не то, как (если вообще) ваше приложение будет взломано. Но принятие этого риска должно быть обоснованным решением.

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