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

Закройте соединение без HTTPS в Nginx

Я использую базовую аутентификацию, когда пользователь отправляет свое имя пользователя и пароль в заголовке. Эти запросы будут выполняться по HTTPS в целях безопасности (в противном случае пароль был бы в виде обычного текста). Если пользователь случайно делает запрос через HTTP, есть ли в nginx способ закрыть соединение, прежде чем они отправят свой заголовок авторизации? Меня беспокоит, что если я просто перенаправлю их на HTTPS, их пароль все равно будет отправлен в виде обычного текста для первого запроса.

Это то, что Строгая транспортная безопасность для.

Добавьте это в соответствующий server блоки:

add_header Strict-Transport-Security max-age=315360000;

Это даст указание браузерам, посетившим ваш сайт хотя бы один раз, никогда не пытаться посетить его снова (в течение количества секунд, указанных max-age) без использования HTTPS.

Время, указанное вами в max-age должен быть не меньше продолжительности любых файлов cookie, которые вы предоставляете пользователю.

Обратите внимание, что вы должны использовать этот заголовок только в ответах HTTPS, и что для завершения цикла вы должны перенаправлять любые HTTP-запросы на эквивалентный HTTPS-URL.