отправить учетные данные с URL, возможно? - PullRequest
1 голос
/ 15 марта 2010

У меня есть веб-сервис, который я защищаю с помощью обычной аутентификации и использую ssl. чтобы упростить использование этого веб-сервиса для клиентов, которые хотят уйти, я хочу пропустить 401 и отправить учетные данные с URL-адресом (я бы хотел, чтобы клиент мог получить доступ к веб-службе с помощью URL-адреса из своего кода / веб-приложения), вопрос это возможно?

Я знаю о заголовках, но многие клиенты, использовавшие это, не имеют надлежащей команды разработчиков для написания кода.

спасибо

Ответы [ 3 ]

4 голосов
/ 15 марта 2010

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

Принятый метод использования аутентификации, основанной исключительно на URL, является своего рода токеном. Вам нужно будет пройти стандартную процедуру входа в систему, чтобы сгенерировать токен. Приложение: Также обратите внимание, что это лучше, чем вводить простой текстовый пароль в URL, но все же имеет свою долю проблем. URL-адреса более широко регистрируются, кэшируются и добавляются в закладки, чем другая информация заголовка. По крайней мере, вы сохраняете контроль над токеном и можете истечь через некоторое время, а срок действия пароля в URL-адресе просто не может истечь.

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

0 голосов
/ 15 марта 2010

ВНИМАНИЕ: Как уже упоминалось, это ОЧЕНЬ ПЛОХАЯ ИДЕЯ!

Однако, в интересах ответа на исходный вопрос, если вы используете обычную аутентификацию, вы можете встроить имя пользователя и пароль в URL следующим образом.

http://userid:password@www.anywhere.com/

Это облегчит пользователям использование API, а хакерам - обойти вашу безопасность. Вы только немного лучше, чем просто отключить аутентификацию.

ВНИМАНИЕ: Как уже упоминалось, это ОЧЕНЬ ПЛОХАЯ ИДЕЯ!

0 голосов
/ 15 марта 2010

Я не могу больше согласиться с @deceze. Отправка пароля в URL неверна и полностью противоречит цели использования SSL. С другой стороны, если вы используете BASIC + SSL, ваше тело зашифровано. Это означает, что пароль, который вы POST (используя поле FORM -> UserName & Password), не может быть расшифрован кем-либо из-за того, что работает SSL.

Я также не совсем согласен с тем, что аутентификация на основе URL с некоторым токеном будет хорошей, главным образом потому, что как бы вы ее ни шифровали (или нет!), URL в любом случае проходит через все прыжки как строку запроса для всех. Отсюда любой, кто может прочитать URL и выдать себя за другого.

НТН, Рахул

...