¿Es posible cambiar la clave secreta de una aplicación Django después de su implementación en producción? De ser así, ¿cuáles serían los impactos?

Sí, es posible cambiar la clave secreta de la aplicación Django después de que se implementa en producción. Sin embargo, hay efectos secundarios de esta acción. La documentación de Django enumera todos los lugares donde se usa la clave secreta:

La clave secreta se usa para:

  • Todas las sesiones si está utilizando cualquier otro back-end de sesión que no sea django.contrib.sessions.backends.cache, o si utiliza SessionAuthenticationMiddleware y está utilizando el get_session_auth_hash () predeterminado.
  • Todos los mensajes si está utilizando CookieStorage o FallbackStorage.
  • Progreso del asistente de formularios cuando se utiliza el almacenamiento de cookies con formtools.wizard.views.CookieWizardView.
  • Todos los tokens password_reset ().
  • Todas las previsualizaciones de formularios en curso.
  • Cualquier uso de firma criptográfica, a menos que se proporcione una clave diferente.

Si gira su clave secreta, se invalidará todo lo anterior. Las claves secretas no se utilizan para las contraseñas de los usuarios y la rotación de claves no las afectará.

En otras palabras, dependiendo de la configuración específica, es probable que todas las cookies de sesión y firmadas se vuelvan inválidas. Esto lleva a la situación cuando:

  • los usuarios deben volver a iniciar sesión y se perderán todos los datos almacenados en las sesiones
  • todos los mensajes se perderán (si usa el marco de mensajes junto con CookieStorage)
  • todo el progreso del asistente de formularios que no esté completo se perderá (si usa cookies para almacenar el progreso)
  • todos los tokens de restablecimiento de contraseña, que no se usan, no serán válidos y los usuarios deberán recibir nuevos tokens
  • todas las vistas previas de formularios serán invalidadas
  • Si está utilizando la firma criptográfica, todos los valores firmados se vuelven inválidos

Puedes leer más artículos relacionados con Django interesantes en nuestro blog.

More Interesting

Prueba de carga: ¿Cuál es la mejor manera de registrar los rastros de uso del sitio web, masajear los datos y reproducirlos?

¿Cuál es la mejor manera de convertirse en desarrollador?

¿Cuáles son algunos de los temas de tendencias del blog para el desarrollo web?

¿Cuál es el mejor widget para mostrar un anuncio de mi producto en el lado derecho de mi página en mi sitio web de WordPress?

¿Cuáles son las serias limitaciones de usar CrossRider para el desarrollo de extensiones entre navegadores?

¿Cuál es el lenguaje de programación web más seguro para diseñar un sitio web que acepte pagos de créditos?

Distilled.me: ¿Cuál es el mejor creador de sitios web personal?

¿Cómo debería abordar una pasantía de Ruby on Rails con un equipo que tiene su aplicación web en producción, cuando agregaré nuevas funciones en lugar de comenzar desde cero?

¿Qué marco es el mejor marco PHP entre Yii, Laravel, CodeIgniter, Symfony, etc.? ¿Es cierto que PHP se está volviendo obsoleto? ¿Qué marco (s) va a ser el marco del futuro, lo más probable?

¿Express.js está muriendo? Cuales son las alternativas?

¿Cuál es la mejor fuente para aprender el desarrollo web completo con WordPress?

¿Cómo es haber sido el principal desarrollador front-end de 100 sitios web?

¿Cuál es la diferencia entre tener un en el archivo HTML y tener el código JavaScript en la pestaña JS.script?

¿Cuál es el diseño de la aplicación Spring MVC hibernate?

¿Para qué se usa la barra de desplazamiento?