गाइड

Base64URL और JWT: डिकोड करना भरोसा करना नहीं है

JWT में Base64URL इस्तेमाल होता है। पेलोड पढ़ें, फिर भरोसा करने से पहले सत्यापन करें।

तीन हिस्से

साइन किए गए JWT में आम तौर पर हेडर, पेलोड और सिग्नेचर होते हैं, जिन्हें बिंदु अलग करते हैं।

दो वर्ण बदलते हैं

Base64URL + को - और / को _ से बदलता है। JWT अंत की = पैडिंग भी हटा देता है।

पढ़ना सत्यापन नहीं है

पेलोड से iss, sub, aud या exp पढ़े जा सकते हैं। इससे सिग्नेचर या जारीकर्ता साबित नहीं होता। सर्वर सही कुंजी और एल्गोरिदम से सिग्नेचर या MAC सत्यापित करता है।

alg पर ध्यान दें

ऐप तय करता है कि कौन से एल्गोरिदम स्वीकार हैं। कोई अनपेक्षित alg मिले तो सत्यापन असफल होना चाहिए।

गड़बड़ी खोजने का क्रम

टोकन को बिंदुओं पर बांटें, पहले दो हिस्सों को Base64URL के रूप में डिकोड करें, टूल मांगे तो पैडिंग जोड़ें, फिर सिग्नेचर, जारीकर्ता, लक्षित पक्ष और समय जांचें।

तकनीकी स्रोत