Наш веб-сервер реализует безстоящий JSON API (без входа в систему). До сих пор все наши конечные точки не были POST
-только с информацией аутентификации, включенной в POST
теле:Как безопасно передавать аутентификацию в REST API?
POST /api/getData
{
"apiKey": "I5r8ccXa8BLgoO50iZpunOGyf0h5e28L1exNpV5m5LI"
"userId": "8A7tRggxWjyQ+grQIwkAswtaityHhtQm0NTFGD5wnmM="
"passwordAuth": "p0/yv/Ptv8kOAY1k2NpR9EhwvGA/n/DF79JGaKJmF/k="
"otpToken": "913012"
}
Это не очень REST-FUL, очевидно. Мы хотели бы использовать HTTP GET
запросы на наши запросы только для чтения, но это означает, что вы отправляете информацию аутентификации по-другому. Существует много возможностей:
- Положить это в URI?
- Положить это в файл cookie?
- Поместите его в пользовательский HTTP-заголовок
Authentication
? - Придумайте наши собственные HTTP-заголовки?
Какой из них лучше, и почему? Или, является ли тело POST
безопасным способом передачи произвольной информации аутентификации?
Клиент - это типичное приложение для телефона, но мы можем сделать версию браузера в один прекрасный день. Все работает по HTTPS. Хеширование паролей и другие криптофайлы работают на клиенте (наше приложение выполняет сквозное шифрование).