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) => {
// Հարցման մշակումը տոքենի հաջող ստուգումից հետո
});