FixVibe
Covered by FixVibehigh

Ewlekariya JWT: Rîskên Tokenên Neewle û Verastkirina Daxwaza Wenda

JSON Web Tokens (JWT) ji bo veguheztina îdîayan standardek peyda dike, lê ewlehî bi verastkirina hişk ve girêdayî ye. Nerastkirina îmzeyan, demên qedandinê, an temaşevanên armanckirî dihêle ku êrîşkar ji verastkirinê derbas bibin an nîşanekan dubare bikin.

CWE-347CWE-287CWE-613

Bandora Êrîşker

Verastkirina JWT nerast rê dide êrîşkaran ku mekanîzmayên erêkirinê bi îdiayên sexte an ji nû ve bi kar anîna nîşanekan [S1] derbas bikin. Ger serverek nîşanekan bêyî îmzeyek derbasdar qebûl bike, êrîşkar dikare bargiraniyê biguhezîne da ku îmtiyazan zêde bike an jî xwe bike kesek [S1]. Wekî din, nehiştina îdiaya qedandinê (exp) dihêle ku êrîşkar tokenek lihevhatî bêdawî [S1] bikar bîne.

Sedema bingehîn

JSON Web Token (JWT) avahiyek li ser JSON-ê ye ku ji bo temsîlkirina îddîayên ku bi dîjîtalî hatine îmzekirin an yekparebûna parastî [S1] tê bikar anîn. Têkçûnên ewlehiyê bi gelemperî ji du valahiyên pêkanîna bingehîn derdikevin:

  • Qebûlkirina JWT-yên Neewle : Ger karûbarek bi hişkî verastkirina îmzeyê bicîh neke, dibe ku ew "JWT-yên neewle" li cihê ku îmze tune be û algorîtma li ser "tune" hatî danîn [S1] pêvajoyê bike. Di vê senaryoyê de, server bêyî ku yekparçetiya wan verast bike [S1] bi îdîayên di bargiraniyê de bawer dike.
  • Verastkirina Daxwaza Wenda : Daxwaza exp (dema qedandinê) dema ku JWT divê ji bo pêvajokirina [S1] neyê pejirandin destnîşan dike. Daxwaza aud (temaşevan) wergirên armanckirî yên token [S1] destnîşan dike. Ger ev nehatin kontrol kirin, server dikare nîşaneyên ku dema wan qediya ne an ji bo serîlêdanek cûda [S1] hatine armanc kirin qebûl bike.

Serastkirinên Beton

  • Îmzeyên Krîptografîk biceribîne : Serîlêdanê mîheng bike da ku her JWT-ya ku algorîtmayek îmzekirina pêş-pejirkirî û bihêz (wek RS256) bikar neyîne red bike.
  • Pêşdarkirina Teqwîqê: Kontrolek mecbûrî pêk bînin da ku hûn pê ewle bibin ku tarîx û demjimêra heyî berî dema ku di exp îdîaya [S1] de hatî destnîşan kirin de ye.
  • Temaşevanan verast bikin : Piştrast bikin ku îdîaya aud nirxek ku karûbarê herêmî nas dike heye; heke karûbar di îdiaya aud de nehatibe naskirin, divê token [S1] were red kirin.
  • Pêşî ji dubarekirinê bigrin: jti (JWT ID) îdiaya bikar bînin ku ji her tokenê re nasnameyek yekta destnîşan bike, rê dide server ku nîşanekên ji nû ve hatine bikar anîn [S1] bişopîne û red bike.

Stratejiya Tespîtkirinê

Qelsiyên di destwerdana JWT de dikarin bi analîzkirina strukturên token û tevgera bersiva serverê ve bêne nas kirin:

  • Kontrolkirina Serê: Sernavê alg (algorîtma) kontrol dikin da ku pê ewle bin ku ew li ser "tune" nehatiye danîn û standardên krîptografî yên hêvîdar [S1] bikar tîne.
  • Perastkirina Dadgehê: Pejirandina hebûn û derbasbûna îddîayên exp (dawîbûn) û aud (temaşevan) di nav bargiraniya JSON [S1] de.
  • Testkirina Verastkirinê: Testkirina ger server bi rast tokenên ku li gorî îdîaya exp qediyane an ji bo temaşevanek cûda ne ku ji hêla aud ve hatî destnîşan kirin rast red dike.