Εισαγωγή στο JWT: Το JSON Web Token (JWT) είναι ένα ανοιχτό πρότυπο (RFC 7519) που ορίζει έναν συμπαγή και αυτόνομο τρόπο για την ασφαλή μεταφορά πληροφοριών μεταξύ των μερών σε αντικείμενα JSON. Αυτές οι πληροφορίες μπορούν να επαληθευτούν και να εμπιστευτούν μέσω ψηφιακών υπογραφών. Τα JWT μπορούν να υπογραφούν χρησιμοποιώντας μυστικά (χρησιμοποιώντας τον αλγόριθμο HMAC) ή χρησιμοποιώντας τα ζεύγη δημόσιου/ιδιωτικού κλειδιού της RSA.
Ορισμένα σενάρια όπου τα διακριτικά Web JSON είναι χρήσιμα:
Επαλήθευση ταυτότητας:Αυτή είναι η πιο συνηθισμένη περίπτωση χρήσης JWT. Μόλις συνδεθεί ο χρήστης, κάθε επόμενο αίτημα θα περιέχει ένα JWT που επιτρέπει στον χρήστη να έχει πρόσβαση στις διαδρομές, τις υπηρεσίες και τους πόρους που επιτρέπονται από αυτό το διακριτικό. Η απλή σύνδεση είναι μια δυνατότητα που χρησιμοποιείται ευρέως σήμερα λόγω της χαμηλής επιβάρυνσης και της ικανότητάς της να χρησιμοποιείται εύκολα σε διαφορετικούς τομείς.
Ανταλλαγή πληροφοριών:Τα JSON Web Tokens είναι ένας πολύ καλός τρόπος για την ασφαλή μεταφορά πληροφοριών μεταξύ των μερών. Επειδή τα JWT μπορούν να υπογραφούν - για παράδειγμα χρησιμοποιώντας ζεύγη δημόσιου/ιδιωτικού κλειδιού, είναι δυνατό να είμαστε σίγουροι ότι ο αποστολέας είναι αυτός που ισχυρίζονται ότι είναι. Επιπλέον, δεδομένου ότι η υπογραφή υπολογίζεται χρησιμοποιώντας κεφαλίδες και φορτία, μπορείτε επίσης να επαληθεύσετε ότι το περιεχόμενο δεν έχει παραβιαστεί.
Επίσημη ιστοσελίδα:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Ανάλυση πληροφοριών JWT στο διαδίκτυο:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Αναλύστε τις παραμέτρους JWT online Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η κατανόησή μου για το JWT παρακάτω είναι λάθος, παρακαλώ δώστε μου μερικές συμβουλές
Πρώτα απ 'όλα, αυτό το πράγμα, δεν συνιστάται να το χρησιμοποιήσετε στον ιστότοπο MVC, μπορείτε να το χρησιμοποιήσετε στο webapi, η τοποθέτηση αυτού του πράγματος είναι API, όχι μια συνεδρία του ιστότοπου αντικατάστασης!
asp.net Οδηγός χρήσης webAPI:Η σύνδεση με υπερσύνδεσμο είναι ορατή.Δεν θα ξαναφτιάξω τον τροχό, κοιτάζοντας τι είναι γραμμένο αυτό το άρθρο είναι εντάξει.
Η σύνθεση του JWT
Το JWT αποτελείται από τρία μέρη: Κεφαλίδα, Ωφέλιμο φορτίο και Υπογραφή, με σύμβολα κουκκίδων ενδιάμεσα για να σχηματίσουν τη μορφή του xx.yy.zz.
Σημειώστε ότι για τα υπογεγραμμένα διακριτικά, αυτές οι πληροφορίες μπορούν να διαβαστούν από οποιονδήποτε, παρά την προστασία από παραβίαση. Μην τοποθετείτε ευαίσθητες πληροφορίες στο έγκυρο περιεχόμενο ή στα στοιχεία κεφαλίδας του JWT, εκτός εάν είναι κρυπτογραφημένες.
Για παράδειγμα:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [υπογραφή] Με απλούς όρους, οποιοσδήποτε μπορεί να αποκρυπτογραφήσει αυτό το διακριτικό, αλλά η αυθεντικότητα αυτών των πληροφοριών δεν μπορεί να επαληθευτεί, μόνο ο διακομιστής που δημιούργησε αυτό το διακριτικό μπορεί να επαληθεύσει την αυθεντικότητα, επομένως μην αποθηκεύετε ευαίσθητες πληροφορίες σε αυτό.
Υπάρχει ένα πρόβλημα εδώ, δηλαδή εάν ο χρήστης αλλάξει τον κωδικό πρόσβασης ή απαγορευτεί στον χρήστη να συνδεθεί, πώς μπορεί το JWT να λύσει την εγκυρότητα του διακριτικού;
Η δική μου ιδέα είναι να προσθέσω μια συμβολοσειρά που μοιάζει με guid στην ενότητα Ωφέλιμο φορτίο και στη συνέχεια να υπάρχει στην κρυφή μνήμη, κατά την επαλήθευση της ταυτότητας του χρήστη, όχι μόνο να επαληθεύσουμε το jwt, αλλά και να επαληθεύσουμε τις πληροφορίες ωφέλιμου φορτίου στο jwt, μπορούμε να ελέγξουμε την εγκυρότητα ελέγχοντας την προσωρινή μνήμη.
|