Должен ли запрос обычной аутентификации быть POST или GET? - PullRequest
0 голосов
/ 02 апреля 2019

Я видел обычную проверку подлинности в запросах GET и POST.

С одной стороны, я полагаю, что кеширование в браузере GET запросов может быть проблемой, но с другой: POST больше, но рекомендуется для доставки конфиденциальной информации.

Я не спрашиваю разницу между GET и POST запросами, но какой из них следует использовать для обычной аутентификации. Должен ли GET использоваться только с HTTPS? Должен ли POST использоваться всегда?

Мой вопрос: какой из них следует использовать? Какой из них лучше?

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Должен ли GET использоваться только с HTTPS? Должен ли POST использоваться всегда?

HTTPS должен использоваться независимо от метода HTTP при отправке / запросе конфиденциальной информации по сети. HTTPS гарантирует, что и тело и заголовки зашифрованы.

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

Какой из них следует использовать для обычной проверки подлинности?

Схема аутентификации Basic не привязана к какому-либо конкретному методу HTTP. Каждый HTTP-метод имеет свою семантику, поэтому вам могут понадобиться разные методы для разработки вашего API. И каждый из этих методов может выполнять операции, которые требуют аутентификации и / или авторизации.

Структура аутентификации HTTP, описанная в RFC 7235 , определяет, что учетные данные должны отправляться в заголовке Authorization, поэтому они могут применяться к любому HTTP (S) запрос.

Также важно подчеркнуть, что схемы аутентификации, такие как Basic, предназначены для применения к областям защиты , часто называемым realms (см. Мой предыдущий ответ для деталей).

1 голос
/ 02 апреля 2019

Оба метода GET и POST используются для передачи данных от клиента к серверу по протоколу HTTP, но основное отличие между методом POST и GET заключается в том, что GET переносит параметр запроса, добавленный в строку URL, в то время как POST переносит параметр запроса в теле сообщения, что делает его более безопасный способ передачи данных с клиента на сервер по протоколу http. Так что это зависит от ваших потребностей. Надеюсь, это поможет!

...