После того, как недавно была обнаружена уязвимость 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;
Еще одна ссылка: Вот