ነጻ መለወጫ

JWT ማስመሰያ ዲኮደር

JWT (JSON Web Token) ራስጌን ያንሱ እና በአሳሽዎ ውስጥ የሚጫኑትን ወዲያውኑ ይክፈሉ። ነፃ፣ ግላዊ እና ደንበኛ - ወደማንኛውም አገልጋይ የተላከ ምንም ውሂብ የለም።

ስላዚህ መሳሪያ

JSON Web Tokens (JWT) በሁለት ወገኖች መካከል የይገባኛል ጥያቄዎችን ለማስተላለፍ የታመቀ፣ ዩአርኤል-አስተማማኝ ቅርጸት ነው፣ በ RFC 7519 ይገለጻል። JWT በነጥብ የሚለያዩ ሦስት base64url-encoded ክፍሎች ናቸው፡ አርዕስት (አልጎሪዝም እና ማስመሰያ ዓይነት)፣ የመጫኛ (የይገባኛል ጥያቄ) እና ፊርማ (የአውሮፊክ ከተማ ማረጋገጫ)። ራስጌ እና ክፍያ JSON ናቸው፣ base64url-encoded ለ URL ደህንነት; ፊርማው ከበርካታ ስልተ ቀመሮች (HS256፣ RS256፣ ES256 እና ሌሎች) በኮድ በተቀመጠው ራስጌ እና በክፍያ ላይ ይጠቀማል።

JWT ን መፍታት - ወደ ክፍሎች መከፋፈል እና እያንዳንዱን ቤዝ64-መግለጽ - ምንም ምስጢር አያስፈልገውም። ማስመሰያ ጽሑፍ ያለው ማንኛውም ሰው የራስጌውን እና የሚጫነውን ማንበብ ይችላል። ፊርማው ግን በምስጢር (HMAC) ወይም በአደባባይ ቁልፍ (asymmetric) ብቻ ነው ሊረጋገጥ የሚችለው። ዲኮዲንግ ለምርመራ ነው; ትክክለኛነትን ማረጋገጥ ነው.

ይህ ዲኮደር ማስመሰያውን ይከፍላል፣ ቤዝ64- እያንዳንዱን ክፍል ይፈታዋል፣ አርዕስቱን እና ጭነቱን እንደ JSON ይተነተን እና ውጤቱን ያሳያል። ፊርማ ለማረጋገጥ አይሞክርም ምክንያቱም ይህ ሚስጥራዊ ወይም ይፋዊ ቁልፍ ያስፈልገዋል, ይህም ዲኮደር የሌለው. ዲኮድ የተደረገው ውፅዓት ተነባቢ-ብቻ ፍተሻ ነው - ቶከኖችን ለማረም ይጠቅማል ነገር ግን በመተግበሪያ ኮድ ውስጥ ትክክለኛ ማረጋገጫን አይተካም።

ለምን JWT ን መፍታት

የማረጋገጫ ጉዳዮችን ማረም ሁልጊዜ ማለት ይቻላል ቶከኖችን መመርመርን ያካትታል። በኮድ የሚሰራ የሚመስለው ማስመሰያ የተሳሳቱ የይገባኛል ጥያቄዎች፣ ያልተጠበቀ ስልተ ቀመር፣ ጊዜው ያለፈበት የጊዜ ማህተም ወይም የተመልካቾች አለመመጣጠን ሊኖረው ይችላል። ማስመሰያውን መፍታት ሰጭው ያመረተውን በትክክል ያሳያል።

በማዋሃድ ሥራ ወቅት ቶከኖችን መመርመርም ይረዳል. ከሶስተኛ ወገን ኤፒአይ ወይም መታወቂያ አቅራቢ ጋር ሲገናኙ ትክክለኛው የይገባኛል ጥያቄ ስሞች፣ ቅርጸቶች እና አወቃቀሮች ጊዜ ያለፈባቸው ሊሆኑ በሚችሉ ሰነዶች ላይ ከመታመን ይልቅ የናሙና ቶከኖችን በመለየት በደንብ ይረዳሉ።

እንዴት ይጠቀሙ

ማስመሰያውን ለጥፍ፣ የተተነተነውን ይዘት ያግኙ።

  1. የእርስዎን JWT ለጥፍ: ሙሉውን ማስመሰያ (header.payload.signature) ወደ ግቤት ቦታ ጣል ያድርጉ። ዲኮደር ከአማራጭ Bearer ቅድመ ቅጥያ ጋር ወይም ያለሱ ምልክቶችን ይቀበላል።
  2. ራስጌውን ይፈትሹ: ራስጌው የመፈረሚያ አልጎሪዝም (alg) እና የማስመሰያ አይነት (ታይፕ) ያሳያል። የተለመዱ ስልተ ቀመሮች HS256፣ RS256 እና ES256 ናቸው። ለ alg ይመልከቱ፡ የለም፣ እሱም ያልተፈረመ ቶከንን የሚያመለክት እና በምርት ላይ ብዙም ደህንነቱ የተጠበቀ ነው።
  3. ክፍያውን ይፈትሹ: ጭነቱ የይገባኛል ጥያቄዎችን ይይዛል፡ iss (አውጪ)፣ ንዑስ (ርዕሰ ጉዳይ)፣ ኦውድ (ተመልካቾች)፣ ጊዜው ያለፈበት (የሚያበቃበት ጊዜ)፣ iat (የተሰጠ) እና ማንኛውም መተግበሪያ-ተኮር የይገባኛል ጥያቄዎች። መደበኛ የጊዜ ማህተሞች የዩኒክስ ዘመን ሰከንድ ናቸው።
  4. በተናጠል ያረጋግጡ: ዲኮደር ፊርማውን አያረጋግጥም. ትክክለኝነትን ለማረጋገጥ ምልክቱን በJWT ላይብረሪ ውስጥ በማመልከቻ ኮድዎ ውስጥ ተገቢውን ሚስጥራዊ ወይም የአደባባይ ቁልፍ ያስኪዱ።

የተለመዱ የአጠቃቀም ጉዳዮች

ቴክኒካዊ ዝርዝሮች

JWT ቅርፀት በነጥቦች የተቀላቀሉ ሶስት ክፍሎች ነው። እያንዳንዱ ክፍል base64url-encoded ነው - የሚጠቀመው URL-አስተማማኝ የbase64 ልዩነት - እና _ በ+ እና / ፈንታ፣ አንዳንድ ጊዜ ንጣፎች ይተዋሉ። ኮድ መፍታት የዩአርኤል-አስተማማኝ ተተኪዎችን መቀልበስ፣ ክፋዩን ማሸግ እና ቤዝ64-መግለጥን ይጠይቃል።

ራስጌ እና ክፍያው JSON ከመፍታት በኋላ ነው። የፊርማው ክፍል ሁለትዮሽ ነው (ጥሬ ፊርማ ባይት) እና ሰው ሊነበብ የሚችል አይደለም; የማረጋገጫ ቁልፉ ጠቃሚ እንዲሆን ይፈልጋል።

በ RFC 7519 ውስጥ የተገለጹ የተለመዱ የይገባኛል ጥያቄዎች፡ iss (አውጪ)፣ ንዑስ (ርዕሰ ጉዳይ መለያ)፣ ኦውድ (ተመልካቾች)፣ ጊዜው ያለፈበት (የዩኒክስ ዘመን ሰከንድ)፣ nbf (ከጊዜ ማህተም በፊት ያልሆነ)፣ iat (በጊዜ ማህተም የተሰጠ)፣ jti (ልዩ ማስመሰያ መታወቂያ)። መተግበሪያ-ተኮር የይገባኛል ጥያቄዎች በማንኛውም ስም ሊታዩ ይችላሉ።

ምርጥ ልምዶች

በተደጋጋሚ የሚጠየቁ ጥያቄዎች

የእኔን JWT እዚህ መለጠፍ ደህና ነው?
አዎ። ኮድ መፍታት ሙሉ በሙሉ በአሳሽዎ ውስጥ ይከሰታል - ቶክ ወደ ማንኛውም አገልጋይ በጭራሽ አይላክም። ሆኖም፣ JWTs ምስክርነቶች ናቸው — ወደ መለያዎችዎ መዳረሻ ሊሰጡ ስለሚችሉ በይፋ አያጋሯቸው (በቅጽበታዊ ገጽ እይታዎች፣ የቁልል ፍሰት ልጥፎች፣ ወዘተ.)።
ይህ መሳሪያ የJWT ፊርማ ያረጋግጣል?
ይህ መሳሪያ የማስመሰያ ይዘቶችን ፈትቶ ያሳያል። የፊርማ ማረጋገጫ ሚስጥራዊ ቁልፍ (ኤችኤምኤሲ) ወይም የህዝብ ቁልፍ (RSA/ECDSA) ያስፈልገዋል፣ ይህም በአገልጋይዎ ላይ መቆየት አለበት። መሣሪያው ጥቅም ላይ የዋለውን ስልተ ቀመር ያሳያል ነገር ግን ያለ ቁልፉ ማረጋገጥ አይችልም.
መደበኛ JWT የይገባኛል ጥያቄዎች ምን ማለት ነው?
iss = አውጪ፣ ንዑስ = ርእሰ ጉዳይ (የተጠቃሚ መታወቂያ)፣ ኤክስፕ = የማለቂያ ጊዜ (ዩኒክስ የጊዜ ማህተም)፣ iat = የተሰጠ በ፣ nbf = ከዚህ በፊት ያልሆነ፣ aud = ታዳሚ፣ jti = JWT መታወቂያ። ብጁ የይገባኛል ጥያቄዎች ማንኛውንም መተግበሪያ-ተኮር ውሂብ ሊይዙ ይችላሉ።
ለምንድነው አንድ ሰው JWT ን መፍታት የሚችለው?
JWTs የተመሰጠሩ እንጂ የተመሰጠሩ አይደሉም። ጭነቱ Base64URL-የተመሰጠረ (የተመሰጠረ አይደለም) ነው፣ ስለዚህ ማንም ሊያነበው ይችላል። ፊርማው ማንበብን ሳይሆን መጎሳቆልን ይከለክላል። ሚስጥራዊነት ያለው መረጃ (የይለፍ ቃል፣ SSNs) በJWT ክፍያ ጭነቶች ውስጥ አታከማቹ።
ለምንድነው አንዳንድ ምልክቶች ፊርማ የሚጎድሉት?
ማስመሰያዎች ከአልግ ጋር፡ አንዳቸውም ፊርማ የላቸውም። በስፔክ ልክ የሆኑ JWTs ናቸው ነገር ግን ምንም ትክክለኛነት ዋስትና አይሰጡም እና በምርት ውስጥ መቀበል የለባቸውም።
JWTs የተመሰጠሩ ናቸው?
መደበኛ የJWT ክፍያዎች ተፈርመዋል ግን አልተመሰጠሩም። JWE (JSON Web Encryption፣ RFC 7516) ለተመሰጠሩ ቶከኖች የተለየ ቅርጸት ነው። በዱር ውስጥ ያሉ አብዛኛዎቹ JWTዎች JWS (የተፈረሙ ብቻ) ናቸው።
የእኔ ማስመሰያ ወደ አገልጋይ ተሰቅሏል?
አይ. ኮድ መፍታት በአሳሽዎ ውስጥ ይከሰታል; ማስመሰያው ከመሣሪያዎ አይወጣም.
JWTs አብዛኛውን ጊዜ ለምን ያህል ጊዜ ነው?
በየትኛውም ቦታ ከጥቂት መቶ እስከ ብዙ ሺህ ቁምፊዎች. ርዝመቱ የሚወሰነው በጥያቄዎች ብዛት እና መጠን እና በፊርማው ርዝመት (በአልጎሪዝም ላይ የተመሰረተ ነው)።