FixVibe
Covered by FixVibehigh

CSRF રક્ષણ: રાજ્યના અનધિકૃત ફેરફારો સામે બચાવ

ક્રોસ-સાઇટ રિક્વેસ્ટ ફોર્જરી (CSRF) વેબ એપ્લિકેશન્સ માટે નોંધપાત્ર ખતરો છે. આ સંશોધન અન્વેષણ કરે છે કે કેવી રીતે Django જેવા આધુનિક ફ્રેમવર્ક સંરક્ષણને અમલમાં મૂકે છે અને કેવી રીતે SameSite જેવા બ્રાઉઝર-લેવલ એટ્રિબ્યુટ્સ અનધિકૃત વિનંતીઓ સામે રક્ષણ પૂરું પાડે છે.

CWE-352

અસર

ક્રોસ-સાઇટ રિક્વેસ્ટ ફોર્જરી (CSRF) હુમલાખોરને પીડિતાના બ્રાઉઝરને એક અલગ વેબસાઇટ પર અનિચ્છનીય ક્રિયાઓ કરવા માટે છેતરવાની મંજૂરી આપે છે જ્યાં પીડિત હાલમાં પ્રમાણિત છે. કારણ કે બ્રાઉઝર વિનંતીઓમાં કૂકીઝ જેવા એમ્બિયન્ટ ઓળખપત્રોને આપમેળે સમાવે છે, તેથી હુમલાખોર વપરાશકર્તાની જાણ વગર સ્ટેટ-બદલાતી કામગીરીઓ-જેમ કે પાસવર્ડ બદલવા, ડેટા કાઢી નાખવો અથવા વ્યવહારો શરૂ કરવા માટે બનાવટી બનાવી શકે છે.

મૂળ કારણ

CSRFનું મૂળભૂત કારણ વેબ બ્રાઉઝરની ડોમેન સાથે સંકળાયેલી કૂકીઝ મોકલવાની ડિફોલ્ટ વર્તણૂક છે જ્યારે પણ તે ડોમેનને વિનંતી કરવામાં આવે છે, વિનંતીના મૂળ [S1]ને ધ્યાનમાં લીધા વિના. એપ્લીકેશનના પોતાના યુઝર ઈન્ટરફેસમાંથી વિનંતિ ઈરાદાપૂર્વક ટ્રિગર થઈ હોવાની ચોક્કસ માન્યતા વિના, સર્વર કાયદેસરની વપરાશકર્તા ક્રિયા અને બનાવટી ક્રિયા વચ્ચે તફાવત કરી શકતું નથી.

જેંગો સીએસઆરએફ પ્રોટેક્શન મિકેનિઝમ્સ

Django મિડલવેર અને ટેમ્પલેટ એકીકરણ [S2] દ્વારા આ જોખમોને ઘટાડવા માટે બિલ્ટ-ઇન સંરક્ષણ સિસ્ટમ પ્રદાન કરે છે.

મિડલવેર સક્રિયકરણ

django.middleware.csrf.CsrfViewMiddleware CSRF સુરક્ષા માટે જવાબદાર છે અને સામાન્ય રીતે ડિફોલ્ટ [S2] રૂપે સક્ષમ છે. કોઈપણ વ્યુ મિડલવેર કે જે ધારે છે કે CSRF હુમલાઓ પહેલાથી જ [S2] હેન્ડલ કરવામાં આવ્યા છે તે પહેલાં તે સ્થિત થયેલ હોવું જોઈએ.

ટેમ્પલેટ અમલીકરણ

કોઈપણ આંતરિક POST ફોર્મ્સ માટે, વિકાસકર્તાઓએ <form> તત્વ [S2] ની અંદર {% csrf_token %} ટૅગ શામેલ કરવો આવશ્યક છે. આ ખાતરી કરે છે કે વિનંતીમાં એક અનન્ય, ગુપ્ત ટોકન શામેલ છે, જે સર્વર પછી વપરાશકર્તાના સત્ર સામે માન્ય કરે છે.

ટોકન લિકેજ જોખમો

એક મહત્વપૂર્ણ અમલીકરણ વિગત એ છે કે {% csrf_token %} ને ક્યારેય પણ બાહ્ય URL ને લક્ષ્યાંકિત કરતા ફોર્મ્સમાં શામેલ કરવું જોઈએ નહીં [S2]. આમ કરવાથી તૃતીય પક્ષને ગુપ્ત CSRF ટોકન લીક થશે, સંભવિતપણે વપરાશકર્તાની સત્ર સુરક્ષા [S2] સાથે ચેડા થશે.

બ્રાઉઝર-લેવલ સંરક્ષણ: સેમસાઇટ કૂકીઝ

આધુનિક બ્રાઉઝર્સે Set-Cookie હેડર માટે SameSite એટ્રિબ્યુટ રજૂ કર્યું છે, જેથી ડિફેન્સ-ઇન-ડેપ્થ [S1]નું સ્તર પૂરું પાડવામાં આવે.

  • કડક: કૂકી ફર્સ્ટ-પાર્ટી સંદર્ભમાં જ મોકલવામાં આવે છે, એટલે કે URL બારમાંની સાઇટ કૂકીના ડોમેન [S1] સાથે મેળ ખાય છે.
  • લેક્સ: કૂકી ક્રોસ-સાઇટ સબ-રિક્વેસ્ટ્સ (જેમ કે છબીઓ અથવા ફ્રેમ્સ) પર મોકલવામાં આવતી નથી પરંતુ જ્યારે વપરાશકર્તા મૂળ સાઇટ પર નેવિગેટ કરે છે, જેમ કે [S1] પ્રમાણભૂત લિંકને અનુસરીને મોકલવામાં આવે છે.

FixVibe તેના માટે કેવી રીતે પરીક્ષણ કરે છે

FixVibe હવે ગેટેડ સક્રિય ચેક તરીકે CSRF સુરક્ષાનો સમાવેશ કરે છે. ડોમેન વેરિફિકેશન પછી, active.csrf-protection શોધાયેલ સ્ટેટ-બદલાતા ફોર્મનું નિરીક્ષણ કરે છે, CSRF-ટોકન-આકારના ઇનપુટ્સ અને સેમસાઇટ કૂકી સિગ્નલોની તપાસ કરે છે, પછી ઓછી અસરવાળા બનાવટી-મૂળ સબમિશનનો પ્રયાસ કરે છે અને જ્યારે સર્વર તેને સ્વીકારે છે ત્યારે જ રિપોર્ટ કરે છે. કૂકી ચેક્સ નબળા SameSite લક્ષણોને પણ ફ્લેગ કરે છે જે CSRF સંરક્ષણ-ઉંડાણ ઘટાડે છે.