我使用基本身份验证,用户在标头中发送用户名和密码。出于安全考虑,这些请求将通过 HTTPS 完成(因为否则密码将以纯文本形式发送)。如果用户意外通过 HTTP 发出请求,在 nginx 中是否有办法在他们发送授权标头之前关闭连接?我担心如果我只是将他们重定向到 HTTPS,他们的密码在第一个请求中仍将以纯文本形式发送。
答案1
这是什么严格的运输安全是为了。
在适当的块中添加server
:
add_header Strict-Transport-Security max-age=315360000;
这将指示网络浏览器,一旦它们至少访问过您的网站一次,就不再尝试在未使用 HTTPS 的情况下再次访问它(在指定的秒数内max-age
)。
您指定的时间max-age
至少应与您向用户提供的任何 cookie 的持续时间一样长。
请注意,您只能在 HTTPS 响应中提供此标头,并且要完成循环,您应该将任何 HTTP 请求重定向到等效的 HTTPS URL。