Εργαλεία προγραμματιστή
Διαδικτυακός εντοπισμός σφαλμάτων JSON Web Token

Διαδικτυακή αποκωδικοποίηση JWT

Επιθεωρήστε μια κεφαλίδα και ωφέλιμο φορτίο JSON Web Token. Αυτό το εργαλείο δεν επικυρώνει τις υπογραφές και η επεξεργασία παραμένει στο πρόγραμμα περιήγησής σας.

Είσοδος JWT Token

Επικολλήστε το JWT παρακάτω για άμεση αποκωδικοποίηση, επιθεώρηση και επαλήθευση.

Αναμονή για εισαγωγή JSON Web Token.

Αποκωδικοποίηση κεφαλίδας

JSON
Μετά την επικόλληση του JWT, το αναλυμένο περιεχόμενο θα εμφανιστεί εδώ.

Αποκωδικοποίηση ωφέλιμου φορτίου

Αξιώσεις
Μετά την επικόλληση του JWT, το αναλυμένο περιεχόμενο θα εμφανιστεί εδώ.

Επαλήθευση υπογραφής JWT

Επιλέξτε
Η Υπογραφή θα εμφανιστεί εδώ μετά την αποκωδικοποίηση.

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

JWT

Πώς να χρησιμοποιήσετε την online αποκωδικοποίηση JWT;

  1. Επικολλήστε το πλήρες διακριτικό JWT.
  2. Πατήστε "Αποκωδικοποίηση JWT" για να αναλύσετε την κεφαλίδα, το ωφέλιμο φορτίο και την υπογραφή.
  3. Όταν πρέπει να επιβεβαιώσετε την υπογραφή, εισαγάγετε το μυστικό και, στη συνέχεια, χρησιμοποιήστε το "Επαλήθευση υπογραφής".
JSON

Τι είναι το JSON Web Token;

Το JWT είναι μια μορφή διακριτικού που χρησιμοποιείται συνήθως για σύνδεση, επαλήθευση API και εξουσιοδότηση μεταξύ υπηρεσιών. Αποτελείται από τρεις ενότητες: Κεφαλίδα, ωφέλιμο φορτίο και υπογραφή.

Το περιεχόμενο ωφέλιμου φορτίου μπορεί να αποκωδικοποιηθεί και να διαβαστεί και ευαίσθητες πληροφορίες δεν πρέπει να τοποθετούνται σε αξιώσεις JWT.

HS

JWT Επαλήθευση και ασφάλεια

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

Όλη η αποκωδικοποίηση JWT, η κωδικοποίηση και η επαλήθευση υπογραφής γίνονται εγγενώς στο πρόγραμμα περιήγησης.

ΓΝΩΣΤΙΚΗ ΒΑΣΗ JWT SEO

Πλήρης οδηγός για την online αποκωδικοποίηση JWT: Τι είναι το JSON Web Token, πώς να το επαληθεύσετε και πώς να το χρησιμοποιήσετε με ασφάλεια

Αν ψάχνετε για "Αποκωδικοποιητής JWT", "Αποκωδικοποιητής JWT", "JSON Web Token Parsing", "JWT Verify" ή "JWT Encoder", συνήθως σημαίνει ότι έχετε ήδη ένα διακριτικό και πρέπει να κατανοήσετε γρήγορα την κεφαλίδα, το ωφέλιμο φορτίο, τον χρόνο λήξης, τον αλγόριθμο υπογραφής και τις αξιώσεις. Αυτή η σελίδα όχι μόνο παρέχει διαδικτυακά εργαλεία αποκωδικοποίησης JWT, αλλά οργανώνει επίσης τις βασικές γνώσεις του JWT για τις οποίες οι προγραμματιστές ρωτούν συχνά.

Τι είναι το JWT;

Το JWT είναι η συντομογραφία του JSON Web Token. Είναι μια μορφή διακριτικού που χρησιμοποιεί JSON για να αναπαραστήσει πληροφορίες και στη συνέχεια τις μετατρέπει σε μια απλοποιημένη συμβολοσειρά. Χρησιμοποιείται συχνά σε ιστότοπους διαχωρισμού front-end και back-end, API εφαρμογών, σύνδεση μελών, SSO μεμονωμένης σύνδεσης, εξουσιοδότηση microservice και ανταλλαγή δεδομένων μεταξύ υπηρεσιών.

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

Πότε να χρησιμοποιήσετε το JWT;

Η πιο συνηθισμένη περίπτωση χρήσης είναι η εξουσιοδότηση. Αφού ο χρήστης συνδεθεί επιτυχώς, ο διακομιστής εξουσιοδότησης εκδίδει ένα JWT. Όταν η διεπαφή ή η εφαρμογή καλεί στη συνέχεια το API, το διακριτικό τοποθετείται στην κεφαλίδα εξουσιοδότησης HTTP, όπως Εξουσιοδότηση: Φορέας .

Το JWT χρησιμοποιείται επίσης συνήθως για ανταλλαγή πληροφοριών. Όταν δύο συστήματα χρειάζεται να ανταλλάξουν επαληθεύσιμα δεδομένα, οι υπογραφές επιτρέπουν στο άκρο λήψης να επιβεβαιώσει ότι τα δεδομένα δεν έχουν αλλοιωθεί κατά τη μετάδοση. Το τελικό σημείο JWKS χρησιμοποιείται συνήθως σε μεγάλα συστήματα για την έκθεση δημόσιων κλειδιών, έτσι ώστε διαφορετικές υπηρεσίες να μπορούν να επαληθεύσουν την προέλευση του διακριτικού.

Δομή τριών τμημάτων JWT: Κεφαλίδα, ωφέλιμο φορτίο, υπογραφή

Ένα τυπικό JWT αποτελείται συνήθως από τρεις συμβολοσειρές Base64URL διαχωρισμένες με τελείες: Header.Payload.Signature. Η πρώτη ενότητα της κεφαλίδας περιγράφει τον τύπο του διακριτικού και τον αλγόριθμο υπογραφής, η δεύτερη ενότητα του ωφέλιμου φορτίου περιέχει αξιώσεις και η τρίτη ενότητα της υπογραφής χρησιμοποιείται για την επαλήθευση της ακεραιότητας.

Οι συνήθεις εγγεγραμμένες αξιώσεις περιλαμβάνουν iss, sub, aud, ex.code data-i18n="auto.011">nbf, iat και jti. Η καλή επικύρωση API συνήθως ελέγχει τουλάχιστον τα exp, iss και aud.

Πώς λειτουργεί το JWT στη σύνδεση και στο API;

Η τυπική διαδικασία είναι: ο χρήστης συνδέεται, εξουσιοδοτεί τον διακομιστή να επαληθεύσει τον κωδικό πρόσβασης του λογαριασμού ή το αποτέλεσμα σύνδεσης τρίτου μέρους και, στη συνέχεια, εκδίδει ένα διακριτικό πρόσβασης. το front-end επισυνάπτει το διακριτικό πρόσβασης στο αίτημα API. το back-end API επαληθεύει το διακριτικό και επιστρέφει προστατευμένα δεδομένα.

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

Ποια είναι η διαφορά μεταξύ της επικύρωσης JWT και της επαλήθευσης JWT;

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

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

Ποια είναι η διαφορά μεταξύ του JWT Decode και του JWT Encode;

Το JWT Decode μετατρέπει την πρώτη και τη δεύτερη παράγραφο του διακριτικού πίσω σε JSON, επιτρέποντάς σας να διαβάσετε την κεφαλίδα και το ωφέλιμο φορτίο. Το JWT Encode είναι η αντίστροφη διαδικασία: προετοιμάστε τα Header JSON και Payload JSON, δημιουργήστε Signature και, τέλος, συνδυάστε τα σε ένα πλήρες διακριτικό.

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

Σύγκριση αξιώσεων JWT: Ποια πεδία πρέπει να κοιτάξω μετά την αποκωδικοποίηση;

Όταν χρησιμοποιείτε την ηλεκτρονική αποκωδικοποίηση JWT, θα πρέπει επίσης να ελέγξετε ποιος εξέδωσε το διακριτικό, σε ποιο σύστημα εκδόθηκε, πότε τίθεται σε ισχύ, πότε λήγει και αν το εύρος της άδειας πληροί τις απαιτήσεις API. Ο παρακάτω πίνακας συνοψίζει τους κοινούς ισχυρισμούς JWT.

ΑξίωσηΚινεζική έννοιαΤι πρέπει να ελέγξετε κατά τον εντοπισμό σφαλμάτων
issΕκδότης, εκδότηςΕίτε πρόκειται για διακομιστή εξουσιοδότησης είτε για αξιόπιστο πάροχο ταυτότητας.
υποΑντικείμενο, χρήστη ή κύριο αναγνωριστικόΕίτε αντιστοιχεί στον σωστό χρήστη, μέλος, λογαριασμό υπηρεσίας ή συσκευή.
audΚοινό, συμβολικό κοινόΕάν θα το στείλετε στο τρέχον API. Τα σφάλματα κοινού προκαλούν συχνά το 401.
expΧρόνος λήξης, χρόνος λήξηςΑν έχει λήξει? Σημειώστε τη διαφορά στη χρονοσφραγίδα Unix και στην εμφάνιση ζώνης ώρας.
nbfΌχι πριν, αποτελεσματικός χρόνοςΕάν δεν έχει φτάσει ακόμη ο ωφέλιμος χρόνος. Η απόκλιση του χρόνου διακομιστή θα το επηρεάσει επίσης.
iatΕκδόθηκε στις, ώρα έκδοσηςΤαιριάζει με τον πραγματικό χρόνο σύνδεσης ή το διακριτικό ανανέωσης;
jtiJWT ID, μοναδικό αναγνωριστικό διακριτικούΕίτε μπορεί να χρησιμοποιηθεί για λίστες ανάκλησης, αρχεία καταγραφής ελέγχου ή προστασία από επίθεση επανάληψης.
πεδίο εφαρμογήςΠεδίο εξουσιοδότησηςΕάν υπάρχουν τα δικαιώματα ανάγνωσης, εγγραφής, διαχείρισης και άλλα δικαιώματα που απαιτούνται από το API.

Πώς να επιλέξετε μεταξύ HS256, RS256 και ES256;

Το alg στο JWT Header θα πει στον επαληθευτή ποιος αλγόριθμος πρέπει να χρησιμοποιηθεί. Το HS256 είναι HMAC SHA-256 και τόσο η έκδοση όσο και η επαλήθευση χρησιμοποιούν το ίδιο σύνολο μυστικών. Το RS256 χρησιμοποιεί υπογραφή ιδιωτικού κλειδιού RSA και επαλήθευση δημόσιου κλειδιού. Το ES256 χρησιμοποιεί αλγόριθμο ελλειπτικής καμπύλης.

Το backend θα πρέπει να προσδιορίζει με σαφήνεια τη λίστα των επιτρεπόμενων αλγορίθμων για να αποτρέψει τους εισβολείς από το να επηρεάσουν τη διαδικασία επαλήθευσης τροποποιώντας την κεφαλίδα. Εάν το JWT προέρχεται από πάροχο ταυτότητας, λάβετε συνήθως το JWKS ή το δημόσιο κλειδί και επιλέξτε παιδί, iss, aud , data-i18n="auto.010">exp.

Συνήθη σφάλματα JWT και μέθοδοι αντιμετώπισης προβλημάτων

Τα πιο συνηθισμένα προβλήματα που αντιμετωπίζονται κατά τη χρήση του αποκωδικοποιητή JWT είναι ότι το διακριτικό δεν είναι σε τυπική μορφή τριών τμημάτων, η συμβολοσειρά Base64URL αντιγράφεται ελλιπώς, υπάρχουν κενά πριν και μετά, το ωφέλιμο φορτίο δεν είναι νόμιμο JSON ή το μυστικό υπογραφής χρησιμοποιείται εσφαλμένα. Εάν το API επιστρέψει το 401 ή το 403, συνιστάται να αποκωδικοποιήσετε πρώτα το JWT και να επιβεβαιώσετε τα exp, aud και auto.05">

Λίστα ελέγχου εντοπισμού σφαλμάτων JWT
  • Εάν το Token είναι σε μορφή τριών τμημάτων header.payload.signature.
  • Εάν η κεφαλίδα Εξουσιοδότηση χρησιμοποιεί το σχήμα Φορέας.
  • Εάν η exp έχει λήξει και εάν η ώρα του διακομιστή είναι συγχρονισμένη.
  • Εάν το iss και το aud συνάδουν με το τρέχον περιβάλλον.
  • Εάν το μυστικό HS256 είναι απολύτως συνεπές με το τέλος έκδοσης.
  • Εάν το RS256 / ES256 χρησιμοποιεί το σωστό δημόσιο κλειδί και το σωστό παιδί.
  • Εάν οι αξιώσεις άδειας περιέχουν το εύρος ή τον ρόλο που απαιτείται από το API.

Ποιες είναι οι διαφορές μεταξύ JWT, Session και SAML;

Το Session συνήθως αποθηκεύει την κατάσταση στον διακομιστή ή στην κεντρική αποθήκευση και το πρόγραμμα περιήγησης αποθηκεύει μόνο το αναγνωριστικό περιόδου λειτουργίας. Το JWT τοποθετεί μέρος της κατάστασης στο διακριτικό, έτσι ώστε το API να μπορεί να χρησιμοποιήσει την υπογραφή για να επαληθεύσει την ακεραιότητα. Το SAML βασίζεται σε XML και χρησιμοποιείται συνήθως στον SSO των επιχειρήσεων.

ΣχέδιοΚατάλληλο για την κατάστασηΠράγματα που πρέπει να σημειωθούν
JWTΕξουσιοδότηση API, διακριτικό πρόσβασης SSO, μικροϋπηρεσίεςΕίναι απαραίτητος ο έλεγχος του χρόνου λήξης, η επαλήθευση σφραγίδας, η ανάκληση και η διαρροή ευαίσθητων πληροφοριών.
ΣυνεδρίαΠαραδοσιακοί ιστότοποι που απαιτούν άμεση αποσύνδεση ή κεντρικό έλεγχο κατάστασηςΑπαιτείται ένα κατάστημα περιόδου λειτουργίας από την πλευρά του διακομιστή και η επέκταση μεταξύ υπηρεσιών απαιτεί πρόσθετο σχεδιασμό.
SAMLΕνοποίηση εταιρικής ταυτότητας, παλαιού τύπου συστήματα SSOΟι δομές XML είναι μεγαλύτερες και οι υπογραφές και οι ρυθμίσεις είναι συνήθως πιο περίπλοκες.

Συμβουλές ασφαλείας JWT: Το SEO White Hat θα πρέπει επίσης να καταγράφει με σαφήνεια τους κινδύνους

  • Μην τοποθετείτε κωδικούς πρόσβασης, ιδιωτικά κλειδιά, κλειδιά API, πληροφορίες πληρωμής ή ευαίσθητα προσωπικά στοιχεία στο JWT Header ή στο Payload.
  • Ορίστε μια λογική exp και μην κάνετε το διακριτικό πρόσβασης να ισχύει για μεγάλο χρονικό διάστημα.
  • Οι επιτρεπόμενοι αλγόριθμοι πρέπει να διορθωθούν κατά την επαλήθευση back-end και μην εμπιστεύεστε τυφλά το alg του Header.
  • Χρησιμοποιήστε ένα αρκετά μεγάλο και τυχαίο μυστικό HS256. μη χρησιμοποιείτε παραδείγματα μυστικών σε περιβάλλοντα παραγωγής.
  • Ελέγξτε iss, aud, nbf, απαραίτητο για αποστολή, smissions
  • Αποφύγετε να γεμίσετε μια υπερβολικά μεγάλη λίστα αδειών στο JWT για να αποφύγετε να κάνετε την κεφαλίδα πολύ μεγάλη ή να προκαλέσετε διαρροή δεδομένων.
  • Τα διακριτικά αποθήκευσης front-end πρέπει να αξιολογούν τους κινδύνους αποθήκευσης XSS, CSRF, cookie και προγράμματος περιήγησης.

Αυτό το διαδικτυακό εργαλείο αποκωδικοποίησης JWT χρησιμοποιεί εγγενή επεξεργασία του προγράμματος περιήγησης: το διακριτικό, το μυστικό, το Header JSON και το Payload JSON που επικολλάτε δεν θα μεταφορτωθούν στον διακομιστή ToolBoy. Παρόλα αυτά, η αρχή της ελάχιστης αποκάλυψης θα πρέπει να εξακολουθεί να τηρείται όταν πρόκειται για πραγματικές μάρκες παραγωγής.

Το JWT εμφανίζεται συχνά στη διαδικασία εντοπισμού σφαλμάτων API μαζί με JSON, Base64URL, ερώτημα URL, χρονική σήμανση, SHA-256, UUID, regex και άλλες μορφές δεδομένων. Μπορείτε να χρησιμοποιήσετε το εργαλείο μορφοποίησης JSON, Κωδικοποίηση και αποκωδικοποίηση Base64, Μετατροπή Unix Timestamp ή Γεννήτρια UUID.

Για περαιτέρω ανάγνωση, ανατρέξτε στην Εισαγωγή JSON Web Token του jwt.io και RFC 7519. Το περιεχόμενο αυτής της σελίδας έχει αναδιοργανωθεί και ξαναγραφτεί στα κινέζικα, εστιάζοντας στην πρακτική διόρθωση σφαλμάτων, το SEO με λευκό καπέλο και το εγγενές απόρρητο.

Συχνές ερωτήσεις αποκωδικοποίησης JWT στο διαδίκτυο

Η online αποκωδικοποίηση JWT θα επαληθεύσει την υπογραφή;
Η αποκωδικοποίηση της κεφαλίδας και του ωφέλιμου φορτίου δεν ισοδυναμεί με την επαλήθευση της υπογραφής. για να επιβεβαιώσετε εάν το διακριτικό έχει παραβιαστεί, εισαγάγετε το ίδιο μυστικό και εκτελέστε Επαλήθευση.
Μπορεί το JWT Payload να περιέχει κωδικούς πρόσβασης ή κλειδιά;
Δεν συνιστάται. Γενικά, το JWT είναι κωδικοποιημένο μόνο με το Base64URL και οποιοσδήποτε αποκτήσει το διακριτικό μπορεί να διαβάσει το ωφέλιμο φορτίο.
Είναι ο κωδικοποιητής JWT κατάλληλος για επίσημη έκδοση διακριτικών;
Αυτό το εργαλείο είναι κατάλληλο για ανάπτυξη, δοκιμή και εντοπισμό σφαλμάτων. Το επίσημο περιβάλλον θα πρέπει να έχει τα διακριτικά έκδοσης υπηρεσιών υποστήριξης και να διαχειρίζεται σωστά τα μυστικά ή τα ιδιωτικά κλειδιά.