Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.2K
Views
"Django-insecure" en clave secreta en settings.py en django

Después de crear un nuevo proyecto con django-admin startproject mi settings.py contiene:

 SECRET_KEY = 'django-insecure <actual secret key>'

Nunca antes había visto "django-insecure" en una clave secreta. ¿Qué significa?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Esta es una advertencia visible de que cualquier clave codificada es insegura desde el primer momento. La idea es utilizar diferentes claves en el desarrollo y la producción.

Puede generar fácilmente una nueva clave usando un generador en línea como este

En su servidor, agregue su SECRET_KEY a las variables de entorno y estas líneas a su configuración.py

 import os SECRET_KEY = os.environ['SECRET_KEY']

Personalmente, no prefiero guardar claves en archivos, pero eso también es posible.

Tenga en cuenta que

over 4 years ago · Santiago Trujillo Report

0

en django 3.2 es mejor crear su propia clave secreta para producción (asegúrese de que sea lo suficientemente segura) y moverla a sus variables de entorno y también es mejor usar esta clave secreta insegura solo para fines de desarrollo. Una SECRET_KEY segura es así:

  • La clave secreta debe ser un valor aleatorio grande y debe mantenerse en secreto.
  • Asegúrese de que la clave utilizada en producción no se utilice en ningún otro lugar y evite enviarla al control de código fuente. Esto reduce la cantidad de vectores desde los cuales un atacante puede adquirir la clave.
  • En lugar de codificar la clave secreta en su módulo de configuración, considere cargarla desde una variable de entorno:

Aquí hay un ejemplo:

 import os SECRET_KEY = os.getenv("SECRET_KEY", "django-insecure <actual secret key>")
over 4 years ago · Santiago Trujillo Report

0

¿Por qué la clave es insegura cuando se crea automáticamente? Parece ser mucho más seguro que una llave pensada por un humano.

Se genera utilizando un proceso bien conocido a partir de una fuente de entropía cuya calidad y seguridad no pueden garantizarse (por Django). Esta es la razón aparente de esto; consulte https://docs.djangoproject.com/en/3.2/ref/checks/#security

security.W009 : Su SECRET_KEY tiene menos de 50 caracteres, menos de 5 caracteres únicos, o tiene el prefijo 'django-insecure-' lo que indica que Django la generó automáticamente . Genera una SECRET_KEY larga y aleatoria, de lo contrario, muchas de las funciones críticas para la seguridad de Django serán vulnerables a los ataques.

Más importante aún, cualquier clave secreta incrustada en un archivo de configuración es tan segura como los mecanismos de control de acceso de su sistema de archivos. Los archivos de configuración de Django son un lugar obvio para buscar la clave secreta.

Es más seguro mantener sus claves en un almacén de claves protegido criptográficamente o en un HSM , y luego pasar a Django su clave secreta a través de una variable de entorno; ver Dónde almacenar claves secretas DJANGO .

Y, sin importar cómo las administre, debe generar sus claves secretas usted mismo utilizando hardware que controle y un mecanismo + fuente de entropía en el que pueda confiar al 100%. (Si no tiene opciones, considere tirar algunos dados como fuente de dígitos aleatorios).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!