Building API - безопасный способ отправки пароля

Я создаю REST API и сомневаюсь в том, что отправленный пароль безопасен?

Пароль отправляется в URL следующим образом:

https://www.example.com/api-version/user-name/password/

person clarkk    schedule 31.08.2011    source источник


Ответы (2)


Отправьте его в полезной нагрузке POST (не в URL!) Через зашифрованное соединение SSL. Отправка пароля, как вы предложили, крайне небезопасна.

person omnomnom    schedule 31.08.2011
comment
Я знаю, что лучше отправить его в полезной нагрузке POST (и более спокойной), но я не думаю, что отправка пароля в URL-адресе при использовании SSL небезопасна, поскольку URL-адрес также шифруется , Правильно? - person elslooo; 31.08.2011
comment
При доступе через браузер пароли появятся в истории браузера. Также пароли будут оставлены в прокси и т.д. - person Erlend; 01.09.2011
comment
Я не думаю, что пароль останется в прокси (потому что вся связь зашифрована), но точно останется в истории браузера. - person omnomnom; 01.09.2011
comment
не слишком ли остался запрос в истории браузера? - person clarkk; 03.09.2011
comment
Да, он виден, например, в инструментах разработчика Chrome или Mozilla FireBug, но он не так заметен, как записи в истории веб-браузера. Во-первых, вам нужно активировать этот инструмент для записи трафика, а во-вторых, он не хранится так долго, как в истории веб-браузера (закройте веб-браузер, и история запросов firebug исчезнет). - person omnomnom; 04.09.2011

Ага. Не делай этого. Либо используйте базовую аутентификацию HTTP, либо передайте токен доступа, например токен OAuth, в качестве параметра, т. е.

http://www.example.com/api-version/end-point/?access_token=...

person Martin Bean    schedule 31.08.2011
comment
Даже отправка access_token или использование HTTP Basic Auth небезопасны, если вы не используете SSL, они все еще уязвимы для MITM-атак. - person elslooo; 31.08.2011
comment
Это лучше, чем добавлять его в URL-адрес; и если он достаточно хорош для таких сайтов, как Twitter и Facebook, то он достаточно хорош и для обычных веб-сайтов и веб-приложений. Я не думаю, что существует какой-то пуленепробиваемый способ передачи данных с одной машины на другую без их перехвата каким-либо образом, если кто-то действительно хочет получить к ним доступ. - person Martin Bean; 31.08.2011