Успешная аутентификация через Ajax - PullRequest
1 голос
/ 07 февраля 2012

Я реализую API-интерфейс restful, и мне интересно, возможно ли безопасную аутентификацию с использованием ajax, не подвергая аутентификационные данные?Учетные данные, которые будут использоваться, будут такими же способами, которые будут передаваться с помощью curl:

curl_setopt($ch, CURLOPT_USERPWD, 'username:password');

. Будет получено с использованием:

$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_USER'];
$_SERVER['PHP_AUTH_PW'];

Возможно ли это, и если да, то как?

1 Ответ

3 голосов
/ 07 февраля 2012

Нет. Это точное назначение и вариант использования для реализации Oauth .

Использование Basic HTTP Авторизация будет предоставлять учетные данные, особенно из ajax, потому что даже если вы выполните все через HTTPS, он все равно будет доступен в коде клиента (до того, как будет сделан любой запрос).

Если вы используете этот API-интерфейс только для внутреннего использования (не ожидая, что сторонние разработчики будут его использовать), вы можете попытаться использовать «Ключ API» вместо обычного текста имени пользователя и пароля. Таким образом, ключ может быть регенерирован, если когда-либо скомпрометирован, и никогда не подвергать ваших пользователей (вероятно) повторно использованным паролям.

Я обнаружил, что ключ API + HTTPS покрывает множество ситуаций, подобных этой.

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

curl_setopt($ch, CURLOPT_USERPWD, '<API KEY>:x');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...