Sobes.tech
Junior

Ի՞նչ է CSRF-ը։

sobes.tech AI

Պատասխան AI-ից

CSRF (Cross-Site Request Forgery) — սա հարձակման տեսակ է, որի ժամանակ հարձակում իրականացնողը ստիպում է օգտվողին կատարել ցանկալի չլինող գործողություններ արդեն իսկ հաստատված կայքում:

Հարձակումն այն է, որ վնասակար կայքը կամ նամակը պարունակում է հարցում, որը օգտվողի բրաուզերը ավտոմատ կերպով ուղարկում է թիրախային կայքին: Եթե օգտվողը մուտք է գործած թիրախային կայքում, նրա բրաուզերը կուղարկի կուկիերը, և հարցումը կիրականացվի նրա իրավունքներով:

Օրինակ, դա կարող է լինել գաղտնաբառի փոփոխություն, գումարի փոխանցում կամ հաշվի ջնջում:

CSRF-ից պաշտպանվելու համար օգտագործվում են տարբեր մեթոդներ՝

  • CSRF տոքեններ՝ գաղտնի, յուրահատուկ յուրաքանչյուր հարցման համար, որոնք ստեղծվում են սերվերից և ուղարկվում յուրաքանչյուր ձևի կամ AJAX հարցման հետ: Սերվերը ստուգում է ստացված տոքենի համապատասխանությունը:
  • SameSite cookie հատկություն՝ սահմանում է, որ կուկիները ուղարկվում են միայն նույն դոմենից եկող հարցումների ժամանակ:
  • Origin և Referer գլխագրերի ստուգում՝ սերվերը ստուգում է, որ հարցումը գալիս է ճիշտ աղբյուրից: Սակայն, այս գլխագրերը կարող են փոփոխվել հարձակում իրականացնողի կողմից կամ բացակայում են որոշ դեպքերում:
  • Կրիտիկական գործողությունների համար կրկնակի հաստատում՝ պահանջում է գաղտնաբառի մուտք, նախքան կարևոր գործողությունները կատարել:

Ամենաարդյունավետ և տարածված մեթոդը CSRF տոքենների օգտագործումն է:

// Օրինակ՝ CSRF տոքենի ավելացում ձևում
<form action="/transfer" method="POST">
  <input type="hidden" name="_csrf_token" value="սերվերից ստեղծված տոքեն">
  <input type="number" name="amount">
  <button type="submit">Փոխանցել</button>
</form>
// Օրինակ՝ CSRF տոքենի ստուգում սերվերում (Node.js և Express)
app.post('/transfer', csrfProtection, (req, res) => {
  // Հարցման մշակումը տոքենի հաջող ստուգումից հետո
});