Назад | Перейти на главную страницу

Передача информации протокола SSL в серверную часть через HTTP-заголовок

После того, как недавно была обнаружена уязвимость Poodle, наша команда решила отказаться от SSLv3. Но перед полным удалением они хотят предупреждать в ежедневные пользователи что их браузер использует устаревший SSLv3. Итак, мы пришли к идее

Затем наш внутренний код обработает этот заголовок и выдаст предупреждение если клиент использует SSLv3.

Я знаю, что у nginx есть функция proxy_set_header. Так что это будет просто, как

proxy_set_header X-HTTPS-Protocol $something;

Проблема в следующем: очевидно, что nginx знает протокол, используемый клиентом, но как я могу передать эту информацию в бэкэнд через HTTP-заголовок?

Спасибо


Как указано аналогичной нитью Пользователь перенаправления Apache, если он использует SSLv3Эта идея может стать очень-очень плохой идеей.

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

Nginx использует множество переменных, которые можно использовать в config. Эта страница предоставил полный список переменных. Переменная, содержащая протокол в запросе HTTPS, - это ssl_protocol. Цитата:

$ssl_protocol

возвращает протокол установленного SSL-соединения;

Так что ваши proxy_set_header конфигурация будет

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

Еще одна ссылка: Вот