Довтлогчийн нөлөө
Зохисгүй JWT баталгаажуулалт нь халдагчдад нэхэмжлэлийг хуурамчаар үйлдэх эсвэл хугацаа нь дууссан [S1] токенуудыг дахин ашиглах замаар баталгаажуулалтын механизмыг тойрч гарах боломжийг олгодог. Хэрэв сервер хүчинтэй гарын үсэггүй жетон хүлээн авбал халдагчид давуу эрхээ нэмэгдүүлэх эсвэл [S1] хэрэглэгчийг дуурайх зорилгоор ачааллыг өөрчлөх боломжтой. Цаашилбал, дуусгавар болох (exp) нэхэмжлэлийн шаардлагыг биелүүлээгүй нь халдагчид [S1] эвдэрсэн жетоныг тодорхойгүй хугацаагаар ашиглах боломжийг олгодог.
Үндсэн шалтгаан
JSON вэб токен (JWT) нь дижитал гарын үсэг зурсан эсвэл бүрэн бүтэн байдал хамгаалагдсан [S1] заргыг илэрхийлэхэд ашиглагддаг JSON-д суурилсан бүтэц юм. Аюулгүй байдлын алдаа нь ихэвчлэн хоёр үндсэн хэрэгжилтийн зөрүүгээс үүсдэг:
- Хамгаалалтгүй JWTs-г хүлээн зөвшөөрөх: Хэрэв үйлчилгээ нь гарын үсгийн баталгаажуулалтыг чанд мөрддөггүй бол гарын үсэг байхгүй, алгоритмыг [S1] "байхгүй" гэж тохируулсан тохиолдолд "Нэмэлтгүй JWT"-г боловсруулж болно. Энэ хувилбарт сервер [S1] бүрэн бүтэн байдлыг нь баталгаажуулалгүйгээр ачаалалд байгаа заргад итгэдэг.
- Нэхэмжлэлийн баталгаажуулалт дутуу байна:
exp(хугацаа дуусах хугацаа) нэхэмжлэл нь JWT-г [S1]-г боловсруулахад хүлээн авахгүй байх хугацаа эсвэл түүнээс хойшхи хугацааг тодорхойлдог.aud(үзэгчид) зарга нь [S1] жетоныг хүлээн авахаар төлөвлөж буй хүмүүсийг тодорхойлдог. Хэрэв эдгээрийг шалгаагүй бол сервер нь хугацаа нь дууссан эсвэл өөр [S1] программд зориулагдсан жетонуудыг хүлээн авч магадгүй.
Бетон засвар
- Криптограф гарын үсгийг хэрэгжүүлэх: Урьдчилан батлагдсан, хүчтэй гарын үсэг зурах алгоритмыг (RS256 гэх мэт) ашигладаггүй аливаа JWT-ээс татгалзахаар програмыг тохируулна уу.
- Хугацаа дуусахыг баталгаажуулах: Одоогийн огноо, цаг
expнэхэмжлэлийн [S1]-д заасан хугацаанаас өмнө байгаа эсэхийг шалгахын тулд заавал шалгалт хийнэ. - Үзэгчдийг бататгах:
audзарга нь орон нутгийн үйлчилгээг тодорхойлох утгыг агуулж байгаа эсэхийг шалгах; хэрэв үйлчилгээ ньaudнэхэмжлэлд тодорхойлогдоогүй бол жетоныг [S1] татгалзах ёстой. - Дахин тоглуулахаас сэргийлэх:
jti(JWT ID) нэхэмжлэлийг ашиглан жетон бүрт өвөрмөц танигч оноож, серверт [S1] дахин ашигласан жетоныг хянах, татгалзах боломжийг олгоно.
Илрүүлэх стратеги
JWT-тэй харьцах үеийн эмзэг байдлыг токен бүтэц болон серверийн хариу үйлдэлд дүн шинжилгээ хийх замаар тодорхойлж болно:
- Толгойг шалгах:
alg(алгоритм) толгой хэсгийг "байхгүй" гэж тохируулаагүй, [S1] криптографийн стандартыг ашиглаж байгаа эсэхийг шалгаж байна. - Нэхэмжлэлийн баталгаажуулалт:
exp(хугацаа дууссан) болонaud(үзэгчид) зарга байгаа эсэхийг баталгаажуулж, JSON ачааллын [S1]. - Баталгаажуулалтын туршилт: Сервер
expнэхэмжлэлийн дагуу хугацаа нь дууссан жетоноос зөв татгалзаж байгаа эсвэлaudзаргын [S1]-д тодорхойлсон өөр үзэгчдэд зориулагдсан эсэхийг шалгах.
