Преимущества «HTTP-аутентификации с PHP» - PullRequest
11 голосов
/ 10 января 2009

Каковы преимущества использования HTTP-аутентификации с PHP (заголовки HTTP 401)
вместо использования обычной формы отправить аутентификацию ??

Ответы [ 4 ]

12 голосов
/ 11 января 2009

С точки зрения безопасности как на основе форм , так и Базовая аутентификация HTTP-доступа используют простой текст для отправки аутентификационных данных. (Конечно, HTTP Basic Auth дополнительно использует Base64, но это не проблема.)

В то время как HTTP Basic Auth отправляет данные проверки подлинности при каждом запросе, проверка подлинности на основе формы отправляет данные проверки подлинности только при отправке формы (помните: оба в виде простого текста). Обычно сеансы используются для поддержания состояния при использовании проверки подлинности на основе форм.

Так что, если вы хотите использовать один из них, обязательно зашифруйте ваше соединение, используя HTTPS, чтобы предотвратить перехват и атаку «человек посередине» . И когда вы выбираете форму и вариант на основе сеанса, обязательно обеспечьте безопасность обработки сеанса, чтобы предотвратить или, по крайней мере, обнаружить мошенничество сеанса, например Перехват сеанса и Фиксация сеанса .

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

8 голосов
/ 11 января 2009

Ваш вопрос немного расплывчатый, но общий ответ таков: использование этого метода дает вам более "RESTful" реализацию, которая следует тому, что HTTP уже хорош. В этом случае бросок 401 - это то, что другие веб-серверы, веб-прокси и веб-браузеры знают, как обращаться. Если вы просто выплевываете HTML-форму, она доступна только конечному пользователю, тогда как использование кодов состояния HTTP разрешает взаимодействие с машиной.

Я бы порекомендовал проверить http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol, чтобы понять, что такое HTTP на самом деле. Я думаю, в этом должно быть больше смысла.

0 голосов
/ 11 января 2009

В качестве примера сказанного revolutiontrigger, я чаще всего использую HTTP-аутентификацию в RSS-каналах для сайтов, которые используют аутентификацию на основе форм, просто потому, что многие читатели RSS могут выполнять HTTP-аутентификацию, но не могут выполнять аутентификацию на основе форм. 1001 *

0 голосов
/ 11 января 2009

Вы делаете сайты? если да, то используйте тег .. это красивее;)

Вы делаете приложения доступными для других приложений и отправляете данные в той или иной форме? Затем используйте HTTP-аутентификацию.

Насколько я знаю, нет большой разницы с точки зрения безопасности, скорости или чего-то еще ... это просто некрасиво и проще в реализации.

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