Quiero implementar SECURE_HSTS_SECONDS en mi configuración de Django para mayor seguridad; sin embargo, la advertencia de los documentos de Django me está asustando un poco, así que quiero una aclaración. Esto es lo que dice:
SECURE_HSTS_SECONDS
Predeterminado: 0
Si se establece en un valor entero distinto de cero, SecurityMiddleware establece el encabezado HTTP Strict Transport Security en todas las respuestas que aún no lo tienen.
Advertencia: configurar esto incorrectamente puede dañar su sitio de forma irreversible (durante algún tiempo). Primero, lea la documentación de HTTP Strict Transport Security.
¿Qué tiene que pasar para que "rompa mi sitio"? Primero leí la HTTP Strict Transport Security documentation y no me quedó más claro.
Seguridad de transporte estricta HTTP
HTTP Strict Transport Security permite que un sitio web informe al navegador que nunca debe cargar el sitio usando HTTP y debe convertir automáticamente todos los intentos de acceder al sitio usando HTTP a solicitudes HTTPS. Consiste en un encabezado HTTP, Strict-Transport-Security, devuelto por el servidor con el recurso.
En otras palabras, si establece el valor de SECURE_HSTS_SECONDS en, por ejemplo, 518400 (6 días), su servidor web informará al navegador de su cliente la primera vez que visite su sitio para acceder exclusivamente a su sitio web a través de https en el futuro. Esto se aplica a todo el período definido. Si por algún motivo ya no proporciona acceso a su sitio web a través de https , el navegador ya no podrá acceder a sus servicios.
Por lo tanto, inicialmente debe establecer esta variable en un valor bajo de 60 y asegurarse de que todo funcione como se espera, de lo contrario, podría evitar que usted y su cliente visiten su sitio.
Los navegadores que respeten correctamente el encabezado
HSTSse negarán a permitir que los usuarios eludan las advertencias y se conecten a un sitio con un certificado SSL caducado, autofirmado o no válido. Si usa HSTS, asegúrese de que sus certificados estén en buen estado y siga así. Fuente