2016-08-18 2 views
0

Наша текущая реализация API REST использует apiKey внутри queryString для всех типов запросов (PUT, POST, GET). Я чувствую, что это неправильно, но не могу объяснить, почему (возможно, apiKey можно обналичить где-то между сервером и клиентом). Что-то вроде:токен аутентификации в запросеString

POST /objects?apiKey=supersecret {name: 'some'}

Итак, это проблема безопасности? Опишите, пожалуйста, как HTTP и HTTPS соединения случае

ответ

2

HTTP

Ваши supersecret значения могут быть замечены и перехвачены thirdparties всякий раз, когда вы посылаете его от клиента к серверу и наоборот, независимо от того, используют ли вы PUT, POST и т. д. Это даже верно, если вы используете файлы cookie для хранения этих значений вместо строки запроса.

HTTPS:

Когда данные в пути между клиентом и сервером не может быть перехвачено, поскольку его защищен HTTPS, даже если он находится в строке запроса. Но большинство людей считает, что отправлять данные в строке запроса так же плохо, поскольку многие системы регистрируют строки запроса. Например, для большинства серверов настроена печать журналов доступа с параметрами запроса пути &. Также если его из браузера можно сохранить в истории вашего браузера.

 Смежные вопросы

  • Нет связанных вопросов^_^