2013-05-31 2 views
0

Что такое хороший способ передачи ключа авторизации на сервер? Я создаю REST-API прямо сейчас, и я застрял, как пользователь может авторизовать на этом api. Он получит ключ авторизации (это не проблема), но что было бы хорошим способом передать этот ключ на сервер? Как параметр GET, как поле HTTP Header, как cookie?REST: Как передать ключ авторизации на сервер?

Какой способ легко справиться с большинством языков программирования (например, я хочу, чтобы использовать API с PHP или AJAX ..)

+0

HTTP-заголовок кажется лучшим. – crush

+0

Я слышал, что некоторые прокси-серверы перекрывают поле заголовка http, когда они этого не знают. – freakout

ответ

0

я предлагаю отправить через HTTP POST, и, если это возможно зашифровать его перед отправкой его и расшифровать на сервере по необходимости

+1

Чтобы использовать api, вы должны перенести ключ с каждым запросом на сервер. Что делать, если вы просто хотите получить некоторую информацию? Таким образом, я должен использовать HTTP POST каждый раз. Это кажется неправильным, не так ли? – freakout

+0

да, вы правы, тогда cookie - лучший вариант. –

+0

также злоумышленник также может атаковать файлы cookie, а также данные заголовка и HTTP-запроса. поэтому в этом смысле ни один из способов не является на 100% безопасным, что вы можете сделать, это зашифровать свой ключ, прежде чем сохранять его в cookie и расшифровать его на сервере после его получения. –

0

Вы можете использовать схему аутентификации HTTP Basic, которая использует HTTP-заголовок Authorization. При обычной проверке подлинности клиент должен предоставить свои учетные данные для каждого запроса. поэтому вы можете предпочесть схему аутентификации Digest, которая немного более безопасна.

Без дополнительной информации я могу порекомендовать OAuth 2.0 с Клиентские полномочия Тип гранта. В принципе, клиент использует базовую аутентификацию с учетными данными своего клиента после, чтобы получить токен доступа, а затем использует токен доступа для последующих запросов ресурсов. Как правило, токен доступа отправляется с использованием HTTP-заголовка Authorization.

OAuth действительно является разрешение рамки, но это обеспечивает хорошее решение для API аутентификации также, и вы могли бы найти свои инструменты авторизации, полезные для обеспечения доступа к API ресурсов. Может быть, что тип субсидии применим также к вашему прецеденту.

Относно: Best Practices for securing a REST API/web service

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