Зашифрованы ли PHP-запросы по SSL - PullRequest
0 голосов
/ 03 июля 2019

Я создаю простое приложение PHP, которое использует JQuery и AJAX для вызова (метод GET) сценария PHP с некоторыми параметрами; username и password. Приложение использует SSL.

При отслеживании запроса в инструментах разработчика Google Chrome я вижу следующий URL-адрес запроса:

https://application.com/php/login.php?username=John&password=Simple1234

Я использовал WireShark , чтобы убедиться, что параметры при отправке запроса шифруются, и я не вижу никаких очевидных заголовков запроса.

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

Ответы [ 2 ]

1 голос
/ 03 июля 2019

Да, но плохая идея использовать $ _GET для таких чувствительных данных.

  • Эти данные будут сохранены в журналах сервера.
  • Эти данные будут сохранены в кеше браузера.
  • Даже скриншоты, сделанные во время входа в систему, могут содержать эти данные

Также, даже если данные зашифрованы, они все еще «доступны» и могут быть расшифрованы. Вместо этого используйте $ _POST.

В этой статье будут показаны риски:

https://blog.httpwatch.com/2009/02/20/how-secure-are-query-strings-over-https/

0 голосов
/ 03 июля 2019

То, что это PHP или AJAX, здесь не имеет значения.

Единственное, что имеет значение, это URL: это https:// или http://?

Если этоhttps://, поскольку это означает, что это HTTPS (!), Что в итоге означает HTTP внутри TLS (SSL не работает уже 20 лет, его преемником является TLS).

TLS шифрует все (он выполняет и другие вещи, но здесьмы обсуждаем только потребности в конфиденциальности), , если реализовано и настроено правильно (хочу подчеркнуть, что, поскольку это не серебряная пуля, недостаточно наклеить наклейку «TLS», например, существует целый вопроспроверка сертификатов, поскольку аутентификация может считаться более важной, чем конфиденциальность, потому что, что вы получите, если зашифруете все по отношению к конечной точке, вы не уверены на 100%, что она действительна?)

Что вы видите вURL является частью протокола HTTP.URL будет внутри потока HTTP как GET /php/login.php?..., перед другими заголовками.То же самое, если использовать другие методы HTTP.Поскольку он находится внутри HTTP, он находится внутри TLS и, следовательно, зашифрован.

Пассивный монитор может видеть только имя домена (оба для запросов DNS перед соединением HTTPS - DNS через HTTPS / TLS решает, что- и из-за расширения SNI в начале рукопожатия TLS - и зашифрованный SNI, который все еще разрабатывается, решит это).

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