Должен ли я по-прежнему обеспечивать базовую аутентификацию для моего API - PullRequest
2 голосов
/ 30 августа 2010

Мой последний API скоро "отправит".Исходя из «раннего и частого выпуска», я планирую внедрить oAuth в более позднюю версию.

По каким причинам, например, Twitter удаляет Basic Auth из своего API ?Каковы плюсы и минусы и, возможно, последствия для безопасности при использовании базовой аутентификации в любом API?

Best
Henrik

1 Ответ

1 голос
/ 30 августа 2010

Возможная (по моему скромному мнению) причина, по которой Twitter удалил Basic Authorization, основана на том факте, что Basic Authorization основана на Base64 кодировке .Заголовок Basic Authorization позволяет хэшировать строку конкатенации имени пользователя и пароля (разделенных двоеточием).

например (псевдокод, не зависит от языка)

String basicAuth = Base64Encode("username:password"); //where username is my username and password is password.
httpRequestHeader.setHeader("Authorization", "Basic " + basicAuth);

Перехватчики могут перехватывать HTTP-запросполучить заголовок Authorization, декодировать закодированный поток Base64 и получить имя пользователя и пароль пользователя.Код кодера / декодера можно найти в любом месте в Интернете.

Теперь перехватчик входит в Twitter, используя это имя пользователя и пароль, и становится «новым» пользователем (и изменяет пароль так, чтобы текущий пользователь небольше не входите).

Более или менее, ловушки базовой аутентификации можно найти здесь .

Во-вторых, Twitter хотел, чтобы аутентификация выполнялась на сайт издателя и не отправляется удаленно через сторонний клиент. OAuth предоставляет такую ​​возможность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...