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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
43
0
28 351
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

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

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

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

Спасибо, это очень ценно. Я был уверен в ответе, но должен был подтвердить это (для сильных мира сего), прежде чем мы начнем разработку. Ваше здоровье!

Adam Hopkinson 16.09.2008 20:04

«SSL шифрует весь путь связи» ... кроме заголовков IP и TCP.

Mark E. Haase 07.06.2012 22:55

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

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

Содержимое и заголовки HTTP - это не одно и то же, и данные POST не отправляются через заголовки HTTP, а отправляются в теле запроса.

Jim 16.09.2008 19:30

Информация, предоставленная Уэсли, неверна. POST помещает данные в тело сообщения.

Dylan 29.03.2012 01:39

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

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

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

Вы, кажется, думаете, что REST - это отдельный протокол.

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

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

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

Спасибо, но я знаю, что REST - это методология, а не протокол.

Adam Hopkinson 16.09.2008 20:02

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

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

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

blowdart 18.09.2008 18:42

@blowdart - очень верно, но браузеры по-прежнему сохраняют строки запроса в своей истории. Так что лучше не использовать конфиденциальную информацию в строке запроса.

Matt 10.07.2009 23:46

С тех пор я подтвердил, что @blowdart верен; мой ответ был неправильным.

Avi Flax 03.05.2012 00:35

@Avi: Я думаю, вам следует отредактировать свой ответ, чтобы он отражал ваши «новейшие знания», т.е. что вы ошибались, вместо того, чтобы комментировать его. Всего мои 2 цента :)

Morten Jensen 12.09.2012 18:48

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

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

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

Даже запрос защищен SSL / TLS между вашим браузером и сервером.

Bruno 25.04.2012 01:55

Не правда. Все, что происходит после mydomain.com, отправляется по проводу внутри запроса HTTP GET/POST/etc. и, следовательно, это зашифровано. Однако сама строка URL-адреса обычно просачивается по параллельным логическим путям, например в истории браузера, журналах, сохраненных ссылках, избранном, панелях инструментов, журналах сервера; и, наверное, что самое худшее - в некоторых веб-аналитических справочниках. Поскольку исходный вопрос касается REST, многие из них не имеют отношения к делу. Как бы то ни было, мое личное практическое правило: «не помещайте конфиденциальные данные (пароли, PII, идентификаторы БД) в URL-адреса».

Valo 09.04.2014 23:06

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