Η διατήρηση των ιδιωτικών κλειδιών σας εκτός αποθετηρίων κώδικα είναι ζωτικής σημασίας για την ασφάλεια. Μάθετε πώς να το κάνετε και πώς να ανακτήσετε εάν έχετε ήδη κάνει το λάθος.

Στο Django, ένα μυστικό κλειδί παίζει ζωτικό ρόλο στην ενίσχυση της ασφάλειας της εφαρμογής σας. Βοηθά στη διαχείριση των περιόδων σύνδεσης των χρηστών, προστατεύει από επιθέσεις πλαστογράφησης αιτημάτων μεταξύ ιστότοπων (CSRF) και προστατεύει τα δεδομένα σας δημιουργώντας και επαληθεύοντας κρυπτογραφικές υπογραφές μεταξύ άλλων.

Θα πρέπει να διατηρείτε το μυστικό κλειδί του έργου σας ασφαλές ανά πάσα στιγμή. Η έκθεσή του θα αφήσει την εφαρμογή σας επιρρεπή σε κακόβουλες επιθέσεις από χάκερ, θέτοντας σε κίνδυνο την ασφάλειά της. Εάν το μυστικό κλειδί σας παραβιαστεί, θα πρέπει να γνωρίζετε πώς να δημιουργήσετε ένα νέο για να μειώσετε τον αρνητικό αντίκτυπο στην αίτησή σας.

Πώς μπορεί να αποκαλυφθεί το μυστικό κλειδί του Django;

Μπορείτε κατά λάθος να κάνετε δημόσιο το μυστικό κλειδί του Django, εάν το δεσμεύσετε εν αγνοία σας στο git ή σε ένα παρόμοιο αποθετήριο πηγαίου κώδικα. Αυτό το λάθος είναι κοινό μεταξύ των νέων προγραμματιστών που είναι ακόμα

instagram viewer
μαθαίνοντας για το GitHub. Όταν συμβεί, μπορείτε να κάνετε ένα από τα παρακάτω:

  1. Διαγράψτε το commit.
  2. Αντικαταστήστε πλήρως το μυστικό κλειδί.

Η διαγραφή της δέσμευσης μπορεί να μην είναι η καλύτερη επιλογή, επειδή το ιστορικό δεσμεύσεων μπορεί ακόμα να είναι προσβάσιμο με διάφορα μέσα, όπως αποθηκευμένα αντίγραφα στο GitHub ή άλλα κατανεμημένα συστήματα. Το πιο ασφαλές πράγμα που μπορείτε να κάνετε σε μια τέτοια κατάσταση είναι να υποθέσετε ότι το μυστικό κλειδί σας έχει ήδη παραβιαστεί.

Θα πρέπει να δημιουργήσετε ένα νέο μυστικό κλειδί για να αντικαταστήσετε το παραβιασμένο και να το προστατέψετε χρησιμοποιώντας μεταβλητές περιβάλλοντος. Σε κάθε περίπτωση, θα πρέπει να μάθετε πώς να δημιουργείτε ένα νέο μυστικό κλειδί στο Django για να προστατεύετε την εφαρμογή σας από πράγματα όπως Επιθέσεις πλαστογράφησης αιτημάτων μεταξύ ιστότοπων (CSRF)..

Πώς να δημιουργήσετε ένα νέο μυστικό κλειδί στο Django

Το Django παρέχει μια συνάρτηση που ονομάζεται get_random_secret_key() που σας βοηθά να δημιουργήσετε ένα νέο μυστικό κλειδί όποτε το καλείτε. Η συνάρτηση get_random_secret_key() είναι μια βοηθητική συνάρτηση που χρησιμοποιεί το μυστικά μονάδα στην Python για τη δημιουργία ενός ασφαλούς μυστικού κλειδιού 50 χαρακτήρων.

Για να δημιουργήσετε ένα νέο μυστικό κλειδί με τη συνάρτηση get_random_secret_key(), ανοίξτε το Διεπαφή γραμμής εντολών (CLI) και πληκτρολογήστε αυτήν την εντολή:

python management.py κέλυφος -γ "από το django.core.management.utils εισαγωγή get_random_secret_key; εκτύπωση (get_random_secret_key())"

Η παραπάνω εντολή εισάγει τη συνάρτηση get_random_secret_key() από django.core.management.utils και στη συνέχεια εκτυπώνει ένα νέο μυστικό κλειδί 50 χαρακτήρων, το οποίο μπορείτε να χρησιμοποιήσετε στο έργο σας. Πριν εκτελέσετε την παραπάνω εντολή, βεβαιωθείτε ότι βρίσκεστε στον ριζικό κατάλογο του έργου σας, δηλαδή στην ίδια θέση με το διαχείριση.py αρχείο στο έργο σας.

Μπορείτε να εκτελέσετε την ίδια εντολή έξω από το CLI σας δημιουργώντας ένα αρχείο Python και επικολλώντας αυτό το απόσπασμα κώδικα σε αυτό:

# εισάγετε τη συνάρτηση get_random_secret_key().
από django.core.management.utils εισαγωγή get_random_secret_key

Secret_key = get_random_secret_key()
εκτύπωση (secret_key)

Μπορείτε να εκτελέσετε τον κώδικα πληκτρολογώντας αυτό στο CLI σας:

python fileName.py

Η παραπάνω εντολή θα πρέπει να εκτυπώσει ένα νέο μυστικό κλειδί 50 χαρακτήρων που μπορείτε να χρησιμοποιήσετε στο έργο σας.

Πώς να προστατέψετε το μυστικό κλειδί σας με μεταβλητές περιβάλλοντος

Πιθανότατα δεν θέλετε να αλλάζετε το μυστικό κλειδί σας κάθε φορά που κάνετε μια δέσμευση GitHub. Ένας αποτελεσματικός τρόπος για να διατηρήσετε το μυστικό κλειδί σας ασφαλές είναι να το αποθηκεύσετε σε μια μεταβλητή περιβάλλοντος. Οι μεταβλητές περιβάλλοντος είναι τιμές που μπορείτε να ορίσετε εκτός της βάσης κωδικών σας, στις οποίες το πρόγραμμά σας μπορεί ακόμα να έχει πρόσβαση κατά τη διάρκεια του χρόνου εκτέλεσης. Μπορούν να αποθηκεύσουν ρυθμίσεις παραμέτρων, κλειδιά API, διαπιστευτήρια βάσης δεδομένων κ.λπ.

Μπορείτε να αποθηκεύσετε τις μεταβλητές του περιβάλλοντος σας σε ένα αρχείο με το όνομα .env και να τις εξαιρέσετε από το αποθετήριο git. Μπορείτε να το κάνετε αυτό δημιουργώντας ένα αρχείο που ονομάζεται .gitignore στο έργο σας. Το αρχείο .gitignore περιέχει μια λίστα αρχείων και φακέλων που το Git δεν θα παρακολουθεί.

Οι τύποι αρχείων και οι δομές καταλόγου διαφέρουν από έργο σε έργο, αλλά υπάρχουν λογικές προεπιλογές που μπορείτε να εφαρμόσετε για κάθε γλώσσα. Μπορείτε να βρείτε μια λίστα προτύπων .gitignore στο Το αποθετήριο gitignore του GitHub. Τα παρακάτω βήματα σάς δείχνουν πώς να χρησιμοποιείτε το αρχείο .gitignore με μεταβλητές περιβάλλοντος στο Django.

1. Δημιουργήστε ένα Αρχείο .gitignore

Στον βασικό σας κατάλογο—την τοποθεσία σας διαχείριση.py αρχείο—δημιουργία α .gitignore αρχείο και αντιγράψτε τα περιεχόμενα αυτού Αρχείο GitHub μέσα σε αυτό. Αυτό το αρχείο είναι ένα δείγμα .gitignore για έργα Python που εξαιρεί κοινά αρχεία που δεν θα θέλετε στο αποθετήριο σας.

Εναλλακτικά, μπορείτε να προσθέσετε ένα αρχείο .gitignore στο έργο σας ενώ δημιουργείτε ένα αποθετήριο στο GitHub. Για να το κάνετε αυτό, κάντε κλικ στο Προσθέστε .gitignore κάντε αναζήτηση για Python και επιλέξτε την.

2. Δημιουργήστε ένα αρχείο .env

Στον βασικό σας κατάλογο, δημιουργήστε ένα αρχείο που ονομάζεται .env. Αυτό το αρχείο θα αποθηκεύσει όλες τις μεταβλητές περιβάλλοντος. Αντιγράψτε και επικολλήστε το μυστικό κλειδί σας σε αυτό το αρχείο (αφαιρέστε τα εισαγωγικά και τα κενά γύρω από αυτό). Εδώ είναι ένα παράδειγμα:

SECRET_KEY=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1%

Ανοιξε το .gitignore αρχείο και επιβεβαιώστε ότι το .env το όνομα αρχείου είναι σε αυτό. Εάν δεν είναι, μπορείτε να το προσθέσετε γράφοντας το όνομα του αρχείου μόνο του σε μια γραμμή:

.env

3. Εγκαταστήστε το πακέτο python-dotenv

Ανοίξτε το CLI και εγκαταστήστε το python-dotenv πακέτο ως εξάρτηση.

εγκατάσταση pip python-dotenv

4. Τροποποιήστε το αρχείο σας settings.py

Στο δικό σου settings.py αρχείο, εισαγάγετε τα ακόλουθα πακέτα:

εισαγωγή os
από dotenv εισαγωγή load_dotenv

Στη συνέχεια, φορτώστε τις μεταβλητές περιβάλλοντος από το δικό σας .env αρχείο στο δικό σας settings.py αρχείο καλώντας το load_dotenv() λειτουργία:

load_dotenv()

Τέλος, αντικαταστήστε το ΜΥΣΤΙΚΟ ΚΛΕΙΔΙ μεταβλητή με αυτή τη γραμμή κώδικα:

SECRET_KEY = os.environ.get('ΜΥΣΤΙΚΟ ΚΛΕΙΔΙ')

Μπορείτε να εκτελέσετε τον διακομιστή ανάπτυξης για να επιβεβαιώσετε ότι η παραπάνω διαμόρφωση λειτουργεί. Εάν συμβαίνει, το έργο σας θα πρέπει να τρέχει όπως θα περιμένατε. Η παρακάτω εντολή θα ξεκινήσει τον διακομιστή ανάπτυξης.

python manager.py runserver

Κρατήστε το μυστικό κλειδί σας ασφαλές με μεταβλητές περιβάλλοντος

Η αποκάλυψη του μυστικού κλειδιού σας μπορεί να προκαλέσει πολλά προβλήματα για εσάς ως προγραμματιστή. Ίσως να μην μπορείτε πάντα να ανακτήσετε το έργο σας από μια επίθεση, ειδικά σε περιβάλλον παραγωγής.

Για να αποτρέψετε αυτές τις αρνητικές παρενέργειες, αποθηκεύετε πάντα το μυστικό κλειδί σας σε μια μεταβλητή περιβάλλοντος και χρησιμοποιείτε α .gitignore αρχείο για να το κρατήσετε έξω από το αποθετήριο git σας.