Comment générer une nouvelle clé secrète dans Django
Dans Django, une clé secrète joue un rôle essentiel dans l’amélioration de la sécurité de votre application. Elle aide à gérer les sessions des utilisateurs, protège contre les attaques de type Cross-Site Request Forgery (CSRF) et protège vos données en générant et en vérifiant les signatures cryptographiques, entre autres.
Vous devez toujours garder la clé secrète de votre projet en sécurité. En l’exposant, vous exposez votre application à des attaques malveillantes de la part de pirates, ce qui compromet sa sécurité. Si votre clé secrète est compromise, vous devez savoir comment en générer une nouvelle afin de réduire l’impact négatif sur votre application.
Comment votre clé secrète Django peut-elle être exposée ?
Vous pouvez accidentellement rendre votre clé secrète Django publique si vous la livrez sans le savoir à git ou à un dépôt de code source similaire. Cette erreur est fréquente chez les nouveaux programmeurs qui apprennent encore à connaître GitHub. Lorsque cela se produit, vous pouvez faire l’une des choses suivantes :
- Supprimer le commit.
- Remplacer entièrement la clé secrète.
La suppression du commit n’est peut-être pas la meilleure option, car l’historique du commit peut toujours être accessible par divers moyens, tels que des copies en cache sur GitHub ou d’autres systèmes distribués. La chose la plus sûre à faire dans une telle situation est de supposer que votre clé secrète est déjà compromise.
Vous devez générer une nouvelle clé secrète pour remplacer celle qui a été compromise et la protéger en utilisant des variables d’environnement. Dans tous les cas, vous devriez apprendre à générer une nouvelle clé secrète dans Django pour protéger votre application contre des choses telles que les attaques de type Cross-Site Request Forgery (CSRF).
Comment générer une nouvelle clé secrète dans Django
Django fournit une fonction appelée get_random_secret_key() qui vous aide à générer une nouvelle clé secrète chaque fois que vous l’appelez. La fonction get_random_secret_key() est une fonction utilitaire qui utilise la fonction secrets de Python pour générer une clé secrète sécurisée de 50 caractères.
Pour générer une nouvelle clé secrète avec la fonction get_random_secret_key(), ouvrez votre interface de ligne de commande (CLI) et tapez cette commande :
La commande ci-dessus importe la fonction get_random_secret_key() de django.core.management.utils et imprime ensuite une nouvelle clé secrète de 50 caractères, que vous pouvez utiliser dans votre projet. Avant d’exécuter la commande ci-dessus, assurez-vous que vous êtes dans le répertoire racine de votre projet, c’est-à-dire au même endroit que le fichier manage.py de votre projet.
Vous pouvez exécuter la même commande en dehors de votre CLI en créant un fichier Python et en y collant cet extrait de code :
Vous pouvez exécuter le code en tapant ceci dans votre CLI :
La commande ci-dessus devrait imprimer une nouvelle clé secrète de 50 caractères que vous pouvez utiliser dans votre projet.
Comment protéger votre clé secrète à l’aide de variables d’environnement
Vous n’avez probablement pas envie de changer votre clé secrète à chaque fois que vous faites un commit sur GitHub. Un moyen efficace de garder votre clé secrète en sécurité est de la stocker dans une variable d’environnement. Les variables d’environnement sont des valeurs que vous pouvez définir en dehors de votre base de code, mais auxquelles votre programme peut toujours accéder pendant l’exécution. Elles peuvent stocker de la configuration, des clés API, des identifiants de base de données, etc.
Vous pouvez stocker vos variables d’environnement dans un fichier nommé .env et les exclure de votre dépôt git. Vous pouvez le faire en créant un fichier appelé. gitignore dans votre projet. Le fichier .gitignore contient une liste de fichiers et de dossiers que Git ne suivra pas.
Les types de fichiers et les structures de répertoires varient d’un projet à l’autre, mais il existe des valeurs par défaut raisonnables que vous pouvez appliquer pour chaque langue. Vous pouvez trouver une liste de modèles .gitignore dans le dépôt gitignore de GitHub. Les étapes suivantes vous montrent comment utiliser le fichier .gitignore avec des variables d’environnement dans Django.
1. Créer un fichier .gitignore
Dans votre répertoire de base – l’emplacement de votre manage.py créez un fichier. gitignore et copier le contenu de ce fichier fichier GitHub dans ce fichier. Ce fichier est un exemple de .gitignore pour les projets Python qui exclut les fichiers communs que vous ne voudrez pas dans votre dépôt.
Vous pouvez également ajouter un fichier .gitignore à votre projet lors de la création d’un dépôt sur GitHub. Pour ce faire, cliquez sur l’icône Ajouter .gitignore recherchez Python et sélectionnez-le.
2. Créer un fichier .env
Dans votre répertoire de base, créez un fichier appelé . env. Ce fichier contiendra toutes vos variables d’environnement. Copiez et collez votre clé secrète dans ce fichier (enlevez les guillemets et les espaces autour). Voici un exemple :
Ouvrez le fichier . gitignore et confirmez que le fichier . env s’y trouve. Si ce n’est pas le cas, vous pouvez l’ajouter en écrivant le nom du fichier seul sur une ligne :
3. Installer le paquetage python-dotenv
Ouvrez votre CLI, et installez le paquetage python-dotenv comme dépendance.
4. Modifiez votre fichier settings.py
Dans votre settings.py importez les paquets suivants :
Ensuite, chargez les variables d’environnement de votre. env dans votre fichier settings.py en appelant le fichier load_dotenv() :
Enfin, remplacez votre SECRET_KEY par cette ligne de code :
Vous pouvez exécuter votre serveur de développement pour confirmer que la configuration ci-dessus fonctionne. Si c’est le cas, votre projet devrait s’exécuter comme prévu. La commande ci-dessous démarre votre serveur de développement.
Gardez votre clé secrète à l’abri grâce aux variables d’environnement
L’exposition de votre clé secrète peut vous poser de nombreux problèmes en tant que développeur. Il se peut que vous ne puissiez pas toujours récupérer votre projet à la suite d’une attaque, en particulier dans un environnement de production.
Pour éviter ces effets secondaires négatifs, stockez toujours votre clé secrète dans une variable d’environnement et utilisez un. gitignore pour la garder en dehors de votre dépôt git.
Quelle est la clé secrète de Django ?
Résumé : la clé secrète de Django est utilisée pour fournir une signature cryptographique. Cette clé est principalement utilisée pour signer les cookies de session. Si quelqu’un disposait de cette clé, il serait en mesure de modifier les cookies envoyés par l’application.
Qu’est-ce que SECRET_KEY en Python ?
SECRET_KEY. Une clé secrète qui sera utilisée pour signer de manière sécurisée le cookie de session et qui peut être utilisée pour tout autre besoin lié à la sécurité par des extensions ou votre application.
Comment créer un superutilisateur en Python Django ?
L’application « Hello World » de Django
- Démarrez le terminal en cliquant sur le bouton « Run ».
- Tapez python3 manage.py createsuperuser dans le terminal donné et appuyez sur « Entrée ».
- Le système demandera des informations d’identification, après quoi un superutilisateur sera créé.
- Pour lancer le serveur, nous tapons la commande python3 manage.py runserver 0.0.
Quelle doit être la longueur de la clé secrète Django ?
Longueur, préfixe interdit et caractères uniques En clair, votre SECRET_KEY doit : Avoir une longueur minimale de 50 caractères. Contenir un minimum de 5 caractères uniques. Ne pas être préfixée par « django-insecure-«