Зашифрованы ли заголовки запросов REST с помощью SSL?

StackOverflow https://stackoverflow.com/questions/73536

  •  09-06-2019
  •  | 
  •  

Вопрос

Я разрабатываю клиент-серверное приложение, которое будет взаимодействовать через rest.Некоторые данные пользовательского запроса будут сохранены в заголовке запроса.И сервер, отправляющий запрос, и принимающий сервер имеют SSL-сертификат - будут ли зашифрованы заголовки или только содержимое?

Это было полезно?

Решение

SSL шифрует весь путь передачи данных от клиента к серверу и обратно, так что да - заголовки будут зашифрованы.

Кстати, если вы разрабатываете сетевые приложения и заботитесь о безопасности данных, самое меньшее, что вам следует сделать, это прочитать книгу Нильса Фергюсона и Брюса Шнайера "Практическая криптография", и, вероятно, хорошей идеей было бы дальнейшее чтение, более сфокусированное на безопасности веб-приложений.Если позволите сделать замечание - и, пожалуйста, я не имею в виду личную критику - ваш вопрос указывает на фундаментальное непонимание самых элементарных технологий веб-безопасности, а это никогда не является хорошим знаком.

Кроме того, никогда не помешает подтвердить, что данные, которые считаются зашифрованными, действительно зашифрованы.Вы можете использовать сетевой анализатор для мониторинга сетевого трафика и следить за тем, чтобы ничего конфиденциального не отправлялось в открытом виде.Я уже использовал Wireshark для этого раньше - иногда результаты могут быть удивительными.

Другие советы

Пока вы общаетесь по SSL-туннелю, все, что передается между сервером и клиентом, будет зашифровано.Шифрование выполняется перед отправкой или получением каких-либо данных.

Как заголовки, так и содержимое зашифрованы.

Похоже, вы думаете, что REST - это отдельный протокол.

REST - это не протокол.Это стиль дизайна для приложений на основе HTTP.

Итак, ваш a пишет HTTP-приложение.Зашифрованы ли заголовки?Да, если вы используете протокол HTTPS (HTTP поверх SSL) вместо обычного HTTP.

Наличие сертификатов с обеих сторон не имеет прямого отношения к вашему вопросу.Для аутентификации используются SSL-сертификаты.Они помогают в обнаружении атак типа "человек посередине", которые возможны при отравлении кэша DNS.

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

И да, HTTP-заголовки зашифрованы так же, как и данные.

SSL .. или, скорее, HTTPS (HTTP over SSL) отправляет весь HTTP-контент по протоколу SSL, а поскольку HTTP-контент и заголовки фактически одно и то же, это означает, что заголовки также зашифрованы.Поскольку данные GET и POST отправляются через HTTP-заголовки, это имеет смысл только тогда, когда при безопасной отправке данных вы не просто хотите, чтобы код ответа или содержимое были зашифрованы.

Другие ответы верны в том, что заголовки действительно шифруются вместе с телом при использовании SSL.Но имейте в виду, что URL-адрес, который может включать параметры запроса, является никогда зашифрованный.Поэтому будьте осторожны и никогда не указывайте какую-либо конфиденциальную информацию в параметрах запроса URL.

Обновить: как указал @blowdart ниже, это неправильно.Смотрите комментарий ниже.

Нет все зашифрован:строка запроса запроса не зашифрована.Поверьте мне, я видел подобные запросы:

https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

Пожалуйста, не помещайте конфиденциальные данные в качестве параметров в строку запроса.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top