ජේඩබ්ලිව්ටී වල සන්දර්භය තුළ , ස්ටෝම්පාත් විසින් ඒවා ගබඩා කළ හැකි ක්රම සහ එක් එක් ක්රමයට අදාළ (අවාසි) වාසි ගෙනහැර දක්වමින් තරමක් ප්රයෝජනවත් ලිපියක් ලියා ඇත.
XSS සහ CSRF ප්රහාරයන් පිළිබඳ කෙටි දළ විශ්ලේෂණයක් ද ඔබට ඒවා සමඟ සටන් කළ හැකි ආකාරය ද එහි ඇත.
ඔවුන්ගේ ලිපිය නොබැඳි ලෙස ගෙන තිබේ නම් / ඔවුන්ගේ වෙබ් අඩවිය පහව ගියහොත් මම පහත ලිපියේ කෙටි කොටස් කිහිපයක් අමුණා ඇත.
දේශීය ගබඩාව
ගැටලු:
වෙබ් ගබඩාව (localStorage / sessionStorage) එකම වසමේ ජාවාස්ක්රිප්ට් හරහා ප්රවේශ විය හැකිය. මෙයින් අදහස් කරන්නේ ඔබේ වෙබ් අඩවියේ ධාවනය වන ඕනෑම ජාවාස්ක්රිප්ට් වෙබ් ගබඩාවකට ප්රවේශය ඇති බවත්, මේ නිසා හරස් අඩවි ස්ක්රිප්ටින් (එක්ස්එස්එස්) ප්රහාරයන්ට ගොදුරු විය හැකි බවත්ය. කෙටියෙන් කිවහොත් එක්ස්එස්එස් යනු ඔබේ පිටුවෙහි ක්රියාත්මක වන ජාවාස්ක්රිප්ට් එන්නත් කිරීමට ප්රහාරකයෙකුට හැකි අවදානමකි. මූලික එක්ස්එස්එස් ප්රහාරයන් ආකෘති ආදාන හරහා ජාවාස්ක්රිප්ට් එන්නත් කිරීමට උත්සාහ කරයි, එහිදී ප්රහාරකයා අනතුරු ඇඟවීමක් කරයි ('ඔබ හැක් කර ඇත'); එය බ්රව්සරය මඟින් ක්රියාත්මක වන්නේ දැයි බැලීමට පෝරමයකට සහ වෙනත් පරිශීලකයින්ට එය නැරඹිය හැකිය.
වැළැක්වීම:
XSS වැළැක්වීම සඳහා, පොදු ප්රතිචාරය වන්නේ විශ්වාස කළ නොහැකි සියලු දත්ත වලින් ගැලවී කේතනය කිරීමයි. නමුත් මෙය සම්පූර්ණ කතාවෙන් බොහෝ දුරස් ය. 2015 දී නවීන වෙබ් යෙදුම් සීඩීඑන් හෝ බාහිර යටිතල පහසුකම් මත සත්කාරක ජාවාස්ක්රිප්ට් භාවිතා කරයි. නවීන වෙබ් යෙදුම් වලට උසස් පෙළ පරීක්ෂණ, පුනීල / වෙළඳපල විශ්ලේෂණය සහ දැන්වීම් සඳහා තෙවන පාර්ශවීය ජාවාස්ක්රිප්ට් පුස්තකාල ඇතුළත් වේ. අපගේ යෙදුම් වලට වෙනත් පුද්ගලයින්ගේ කේත ආනයනය කිරීමට අපි බෝවර් වැනි පැකේජ කළමනාකරුවන් භාවිතා කරමු.
ඔබ භාවිතා කරන එක් ස්ක්රිප්ට් එකක් පමණක් සම්මුතියකට ලක් වුවහොත් කුමක් කළ යුතුද? අනිෂ්ට ජාවාස්ක්රිප්ට් පිටුවට කාවැද්දිය හැකි අතර වෙබ් ආචයනය අඩපණ වේ. මෙම වර්ගයේ එක්ස්එස්එස් ප්රහාරයන්ට ඔබේ වෙබ් අඩවියට පිවිසෙන සෑම දෙනාගේම වෙබ් ගබඩාව ඔවුන්ගේ අනුදැනුමකින් තොරව ලබා ගත හැකිය. බොහෝ දේ සංවිධාන සමූහයක් උපදෙස් දෙන්නේ වටිනා කිසිවක් ගබඩා නොකරන ලෙස හෝ වෙබ් ගබඩාවේ කිසිදු තොරතුරක් විශ්වාස නොකරන ලෙසයි. සැසි හඳුනාගැනීම් සහ ටෝකන මෙයට ඇතුළත් වේ.
ගබඩා කිරීමේ යාන්ත්රණයක් ලෙස, වෙබ් ආචයනය මාරු කිරීමේදී කිසිදු ආරක්ෂිත ප්රමිතියක් බලාත්මක නොකරයි. කවුරුහරි වෙබ් ආචයනය කියවා එය භාවිතා කරන්නේ නම් ඔවුන් සෑම විටම JWT HTTPS හරහා යවන බවත්, කිසි විටෙකත් HTTP නොවන බවත් සහතික කිරීමට ඔවුන්ගේ නිසි උත්සාහය කළ යුතුය.
කුකීස්
ගැටලු:
කුකීස්, HttpOnly කුකී ධජය සමඟ භාවිතා කරන විට, ජාවාස්ක්රිප්ට් හරහා ප්රවේශ විය නොහැකි අතර ඒවා XSS වලට ප්රතිශක්තී වේ. කුකිය එවනු ලබන්නේ HTTPS හරහා පමණක් බව සහතික කිරීම සඳහා ඔබට ආරක්ෂිත කුකී ධජය සැකසිය හැකිය. ටෝකන හෝ සැසි දත්ත ගබඩා කිරීම සඳහා අතීතයේ දී කුකීස් උත්තේජනය කර ඇති ප්රධාන හේතුවක් මෙයයි. නවීන සංවර්ධකයින් කුකීස් භාවිතා කිරීමට අදිමදි කරන්නේ සාම්ප්රදායිකව සේවාදායකය තුළ ගබඩා කර තැබිය යුතු නිසාය. ගබඩා යාන්ත්රණයක් ලෙස කුකීස් ඔබ කුකියේ JWT ගබඩා කරන්නේ නම් සේවාදායකයේ තත්වය ගබඩා කිරීම අවශ්ය නොවේ. මෙයට හේතුව, ඉල්ලීම ඉටු කිරීම සඳහා සේවාදායකයාට අවශ්ය සියල්ල JWT සංයුක්ත කිරීමයි.
කෙසේ වෙතත්, කුකීස් වෙනත් ආකාරයේ ප්රහාරයකට ගොදුරු වේ: හරස් අඩවි ඉල්ලීම් ව්යාජ (CSRF). CSRF ප්රහාරයක් යනු අනිෂ්ට වෙබ් අඩවියක්, විද්යුත් තැපෑලක් හෝ බ්ලොග් අඩවියක් භාවිතා කරන්නාගේ වෙබ් බ්රව්සරය පරිශීලකයා දැනට සත්යාපනය කර ඇති විශ්වාසදායක වෙබ් අඩවියක අනවශ්ය ක්රියාවක් කිරීමට හේතු වන විට සිදුවන ආකාරයේ ප්රහාරයකි. බ්රව්සරය කුකීස් හසුරුවන ආකාරය මෙය සූරාකෑමකි. කුකියක් යැවිය හැක්කේ එයට අවසර දී ඇති වසම් වෙත පමණි. පෙරනිමියෙන්, මුලින් කුකිය සැකසූ වසම මෙයයි. ඔබ galaxies.com හෝ hahagonnahackyou.com හි සිටීද යන්න නොසලකා කුකියක් ඉල්ලීමක් සඳහා යවනු ලැබේ.
වැළැක්වීම:
නවීන බ්රවුසරයන් සහාය SameSite
ධජය අමතරව, HttpOnly
හා Secure
. මෙම ධජයේ පරමාර්ථය වන්නේ හරස් අඩවි ඉල්ලීම් වලදී කුකී සම්ප්රේෂණය වීම වැළැක්වීම, විවිධ වර්ගයේ CSRF ප්රහාර වැළැක්වීමයි.
සහය නොදක්වන බ්රව්සර් සඳහා SameSite
, සමමුහුර්ත ටෝකන රටා භාවිතා කිරීමෙන් CSRF වළක්වා ගත හැකිය. මෙය සංකීර්ණ බවක් පෙනේ, නමුත් සියලුම නවීන වෙබ් රාමු සඳහා මේ සඳහා සහාය ඇත.
උදාහරණයක් ලෙස, කුකියට ප්රවේශ විය හැක්කේ ඔබගේ වසමෙන් පමණක් බව තහවුරු කිරීමට AngularJS සතුව විසඳුමක් ඇත. AngularJS ලියකියවිලි වලින් කෙළින්ම:
XHR ඉල්ලීම් සිදු කරන විට, $ http සේවාව කුකියකින් ටෝකනයක් කියවන අතර (පෙරනිමියෙන්, XSRF-TOKEN) එය HTTP ශීර්ෂයක් ලෙස (X-XSRF-TOKEN) සකසයි. ඔබගේ වසමේ ක්රියාත්මක වන ජාවාස්ක්රිප්ට් වලට පමණක් කුකිය කියවිය හැකි බැවින්, XHR පැමිණියේ ඔබේ වසමේ ක්රියාත්මක වන ජාවාස්ක්රිප්ට් වලින් බව ඔබේ සේවාදායකයාට සහතික විය හැකිය. xsrfToken
JWT හිමිකම් පෑමක් ඇතුළත් කිරීමෙන් ඔබට මෙම CSRF ආරක්ෂාව අස්ථායි කළ හැකිය :
{
"iss": "http://galaxies.com",
"exp": 1300819380,
"scopes": ["explorer", "solar-harvester", "seller"],
"sub": "tom@andromeda.com",
"xsrfToken": "d9b9714c-7ac0-42e0-8696-2dae95dbc33e"
}
ඔබගේ වෙබ් යෙදුම් රාමුවේ CSRF ආරක්ෂාව උත්තේජනය කිරීමෙන් JWT ගබඩා කිරීම සඳහා කුකීස් ශක්තිමත් වේ. ඔබේ API වෙතින් HTTP Referrer සහ Origin header පරීක්ෂා කිරීමෙන් CSRF අර්ධ වශයෙන් වළක්වා ගත හැකිය. CSRF ප්රහාරයන්ට ඔබගේ යෙදුමට සම්බන්ධ නොවන යොමු සහ සම්භවයක් ඇති ශීර්ෂයන් ඇත.
සම්පූර්ණ ලිපිය මෙතැනින් සොයාගත හැකිය:
https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage/
ටෝකනයේ ව්යුහය සම්බන්ධයෙන් JWT වඩාත් හොඳින් සැලසුම් කර ක්රියාත්මක කරන්නේ කෙසේද යන්න පිළිබඳ ප්රයෝජනවත් ලිපියක් ඔවුන් සතුව ඇත:
https://stormpath.com/blog/jwt-the-right-way/