JWT क्या लीक करता है — और प्रोडक्शन टोकन ऑनलाइन क्यों न पेस्ट करें
JSON Web Token रैंडम दिखता है, पर उसके ठीक तीन हिस्से हैं: header, payload, signature। हर हिस्से का काम जानना एक सिक्योरिटी स्किल है।
सिग्नेचर tampering रोकता है — पढ़ना नहीं
header और payload सादे Base64URL हैं: टोकन रखने वाला कोई भी user id, email, roles और expiry आसानी से पढ़ सकता है। सिग्नेचर सिर्फ साबित करता है कि payload बिना key वाले किसी ने नहीं बदला।
क्लासिक पिटफॉल: alg=none
अगर सर्वर algorithm none वाले टोकन स्वीकार करे, तो सिग्नेचर पूरी तरह छोड़ दिया जाता है — टेकओवर बग की मशहूर श्रेणी। सर्वर को अपेक्षित एल्गोरिदम पिन करना चाहिए।
प्रोडक्शन टोकन कभी रैंडम साइटों पर न पेस्ट करें
सेशन टोकन एक bearer क्रेडेंशियल है: जिसके पास है, वह expiry तक आपकी तरह काम कर सकता है। लाइव टोकन किसी अनजान डिकोडर में पेस्ट करना = अपना सेशन उस साइट को देना। जाँचने के लिए ऐसा टूल चुनें जो ब्राउज़र में लोकल डिकोड करे — जैसे हमारा JWT डिकोडर, जो कुछ भी भेजता नहीं — और शुरू से टेस्ट टोकन ही इस्तेमाल करें।
क्विक चेकलिस्ट
- भरोसा करने से पहले exp देखें
- एल्गोरिदम सर्वर की अपेक्षा जैसा है या नहीं पुष्टि करें
- हर टोकन को पठनीय मानें, कभी गुप्त नहीं
टोकन सुरक्षित जाँचें: लोकल डिकोड करें — header और payload तुरंत दिखते हैं, कुछ भी ट्रांसमिट नहीं होता।