FixVibe
Covered by FixVibehigh

CSRF ආරක්ෂණය: අනවසර රාජ්‍ය වෙනස්කම් වලට එරෙහිව ආරක්ෂා කිරීම

Cross-Site Request Forgery (CSRF) වෙබ් යෙදුම් සඳහා සැලකිය යුතු තර්ජනයක් ලෙස පවතී. මෙම පර්යේෂණය Django වැනි නවීන රාමු ආරක්‍ෂාව ක්‍රියාත්මක කරන ආකාරය සහ SameSite වැනි බ්‍රවුසර මට්ටමේ ගුණාංග අනවසර ඉල්ලීම්වලට එරෙහිව ගැඹුරින් ආරක්‍ෂාව සපයන ආකාරය ගවේෂණය කරයි.

CWE-352

බලපෑම

Cross-Site Request Forgery (CSRF) ප්‍රහාරකයෙකුට වින්දිතයාගේ බ්‍රවුසරය රවටා වින්දිතයා දැනට සත්‍යාපනය කර ඇති වෙනත් වෙබ් අඩවියක අනවශ්‍ය ක්‍රියා සිදු කිරීමට ඉඩ දෙයි. බ්‍රවුසරවල ස්වයංක්‍රීයව කුකීස් වැනි සංසරණ අක්තපත්‍ර ඉල්ලීම්වල ඇතුළත් වන බැවින්, ප්‍රහාරකයෙකුට පරිශීලකයාගේ අනුදැනුමකින් තොරව මුරපද වෙනස් කිරීම, දත්ත මකා දැමීම හෝ ගනුදෙනු ආරම්භ කිරීම වැනි තත්ත්වය වෙනස් කිරීමේ මෙහෙයුම් ව්‍යාජ ලෙස සකස් කළ හැක.

මූල හේතුව

CSRF හි මූලික හේතුව නම්, එම වසම වෙත ඉල්ලීමක් කරන විට, [S1] ඉල්ලීමේ මූලාරම්භය කුමක් වුවත්, වසමකට සම්බන්ධ කුකීස් යැවීමේ වෙබ් බ්‍රවුසරයේ පෙරනිමි හැසිරීමයි. යෙදුමේ පරිශීලක අතුරුමුහුණතෙන් ඉල්ලීමක් හිතාමතාම ක්‍රියාත්මක කර ඇති බවට නිශ්චිත වලංගු භාවයකින් තොරව, සේවාදායකයට නීත්‍යානුකූල පරිශීලක ක්‍රියාවක් සහ ව්‍යාජ එකක් අතර වෙනස හඳුනාගත නොහැක.

Django CSRF ආරක්ෂණ යාන්ත්‍රණ

[S2] මැද මෘදුකාංග සහ සැකිලි ඒකාබද්ධ කිරීම හරහා මෙම අවදානම් අවම කිරීම සඳහා Django විසින් ගොඩනඟන ලද ආරක්ෂක පද්ධතියක් සපයයි.

Middleware Activation

django.middleware.csrf.CsrfViewMiddleware CSRF ආරක්ෂාව සඳහා වගකිව යුතු අතර සාමාන්‍යයෙන් පෙරනිමියෙන් සක්‍රීය කර ඇත [S2]. CSRF ප්‍රහාර දැනටමත් [S2] හසුරුවා ඇති බව උපකල්පනය කරන ඕනෑම දර්ශනයකට පෙර එය ස්ථානගත කළ යුතුය.

සැකිලි ක්‍රියාත්මක කිරීම

ඕනෑම අභ්‍යන්තර POST පෝරමයක් සඳහා, සංවර්ධකයින් විසින් <form> මූලද්‍රව්‍යය [S2] තුළ {% csrf_token %} ටැගය ඇතුළත් කළ යුතුය. මෙමගින් අනන්‍ය, රහස් ටෝකනයක් ඉල්ලීමට ඇතුළත් කර ඇති බව සහතික කරයි, එය සේවාදායකයා විසින් පරිශීලක සැසියට එරෙහිව වලංගු කරයි.

ටෝකන් කාන්දු වීමේ අවදානම

තීරණාත්මක ක්‍රියාත්මක කිරීමේ විස්තරයක් වන්නේ {% csrf_token %} බාහිර URLs [S2] ඉලක්ක කරන පෝරමවලට කිසිවිටෙක ඇතුළත් නොකළ යුතු බවයි. එසේ කිරීමෙන් පරිශීලකයාගේ සැසි ආරක්ෂාව [S2] සම්මුතියට පත් විය හැකි, තෙවන පාර්ශවයකට රහස් CSRF ටෝකනය කාන්දු වනු ඇත.

බ්‍රව්සර් මට්ටමේ ආරක්‍ෂාව: SameSite Cookies

නවීන බ්‍රව්සර් විසින් SameSite ශීර්ෂය සඳහා SameSite උපලක්ෂණය හඳුන්වා දී ඇත්තේ ගැඹුරු [S1] ස්ථරයක් සැපයීම සඳහාය.

  • දැඩි: කුකිය යවනු ලබන්නේ පළමු පාර්ශ්ව සන්දර්භය තුළ පමණි, එයින් අදහස් වන්නේ URL තීරුවේ ඇති අඩවිය කුකියේ වසම [S1] සමඟ ගැලපේ.
  • Lax: කුකිය හරස්-අඩවි උප ඉල්ලීම් (පින්තූර හෝ රාමු වැනි) මත යවනු නොලැබේ, නමුත් [S1] සම්මත සබැඳියක් අනුගමනය කිරීම වැනි පරිශීලකයෙකු මුල් අඩවියට සංචාලනය කරන විට යවනු ලැබේ.

FixVibe ඒ සඳහා පරීක්ෂා කරන ආකාරය

FixVibe දැන් CSRF ආරක්ෂාව දොරටු සක්‍රීය පරීක්ෂාවක් ලෙස ඇතුළත් වේ. වසම් සත්‍යාපනයෙන් පසුව, active.csrf-protection විසින් සොයාගත් රාජ්‍ය-වෙනස්වන පෝරම පරීක්ෂා කරයි, CSRF-ටෝකන් හැඩැති ආදාන සහ SameSite කුකී සංඥා සඳහා පරීක්ෂා කරයි, පසුව අඩු බලපෑමක් ඇති ව්‍යාජ-සම්භවයක් ඉදිරිපත් කිරීමට උත්සාහ කරයි සහ සේවාදායකය එය පිළිගන්නා විට පමණක් වාර්තා කරයි. CSRF ආරක්‍ෂාව-ගැඹුර අඩු කරන දුර්වල SameSite ගුණාංග ද කුකී චෙක්පත් සලකුණු කරයි.