Должен ли GET
использоваться только с HTTPS? Должен ли POST
использоваться всегда?
HTTPS должен использоваться независимо от метода HTTP при отправке / запросе конфиденциальной информации по сети. HTTPS гарантирует, что и тело и заголовки зашифрованы.
Имейте в виду, что конфиденциальная информация (например, пароли и номера платежных карт) никогда не должна отправляться в URL-адресе: запрошенный URL-адрес может регистрироваться серверами и прокси-серверами; Если URL запрашивается браузером, он попадает в историю браузера. И тогда у вас есть нарушение безопасности.
Какой из них следует использовать для обычной проверки подлинности?
Схема аутентификации Basic не привязана к какому-либо конкретному методу HTTP. Каждый HTTP-метод имеет свою семантику, поэтому вам могут понадобиться разные методы для разработки вашего API. И каждый из этих методов может выполнять операции, которые требуют аутентификации и / или авторизации.
Структура аутентификации HTTP, описанная в RFC 7235 , определяет, что учетные данные должны отправляться в заголовке Authorization
, поэтому они могут применяться к любому HTTP (S) запрос.
Также важно подчеркнуть, что схемы аутентификации, такие как Basic, предназначены для применения к областям защиты , часто называемым realms (см. Мой предыдущий ответ для деталей).