CSRF ან Cross-Site Request Forgery არის ვებსაიტის დაუცველობა, სადაც თავდამსხმელს შეუძლია გამოიწვიოს ქმედება მსხვერპლის სესიაზე სხვა ვებსაიტზე. ერთ-ერთი რამ, რაც CSRF-ს ასე დიდ რისკად აქცევს არის ის, რომ ის არც კი მოითხოვს მომხმარებლის ინტერაქციას, საჭიროა მხოლოდ მსხვერპლმა ნახოს ვებგვერდი მასში არსებული ექსპლოიტით.
რჩევა: CSRF ზოგადად წარმოითქმის ასო-წერილად ან როგორც "ზღვის სერფინგი".
როგორ მუშაობს CSRF შეტევა?
შეტევა გულისხმობს თავდამსხმელის შექმნას ვებსაიტს, რომელსაც აქვს სხვა ვებსაიტზე მოთხოვნის გაკეთების მეთოდი. ამან შეიძლება მოითხოვოს მომხმარებლის ურთიერთქმედება, მაგალითად, ღილაკზე დაჭერა, მაგრამ ის ასევე შეიძლება იყოს ურთიერთქმედების გარეშე. JavaScript-ში არის მოქმედების ავტომატურად განხორციელების გზები. მაგალითად, ნულოვანი პიქსელის სურათი არ იქნება ხილული მომხმარებლისთვის, მაგრამ მისი კონფიგურაცია შესაძლებელია ისე, რომ მისი "src" მიმართოს სხვა ვებსაიტს.
JavaScript არის კლიენტის მხარის ენა, ეს ნიშნავს, რომ JavaScript კოდი გაშვებულია ბრაუზერში და არა ვებსერვერზე. ამ ფაქტის წყალობით, კომპიუტერი, რომელიც აკეთებს CSRF მოთხოვნას, რეალურად მსხვერპლის კომპიუტერია. სამწუხაროდ, ეს ნიშნავს, რომ მოთხოვნა შესრულებულია ყველა იმ ნებართვით, რაც მომხმარებელს აქვს. მას შემდეგ, რაც თავდამსხმელმა ვებსაიტმა მოატყუა მსხვერპლი CSRF მოთხოვნაში, მოთხოვნა არსებითად არ განსხვავდება მომხმარებლისგან, რომელიც ნორმალურად აკეთებს მოთხოვნას.
CSRF არის „დაბნეული დეპუტატის თავდასხმის“ მაგალითი ვებ ბრაუზერზე, რადგან ბრაუზერს მოტყუებული აქვს თავდამსხმელის მიერ მისი ნებართვების გამოყენება ამ პრივილეგიების გარეშე. ეს ნებართვები არის თქვენი სესიისა და ავთენტიფიკაციის ნიშნები სამიზნე ვებსაიტზე. თქვენი ბრაუზერი ავტომატურად მოიცავს ამ დეტალებს ნებისმიერ მოთხოვნაში.
CSRF შეტევების მოწყობა გარკვეულწილად რთულია. უპირველეს ყოვლისა, სამიზნე ვებსაიტს უნდა ჰქონდეს ფორმა ან URL, რომელსაც აქვს გვერდითი მოვლენები, როგორიცაა თქვენი ანგარიშის წაშლა. შემდეგ თავდამსხმელმა უნდა შექმნას მოთხოვნა სასურველი მოქმედების შესასრულებლად. დაბოლოს, თავდამსხმელმა უნდა აიძულოს მსხვერპლი ატვირთოს ვებგვერდი მასში არსებული ექსპლოიტით, სანამ ის შესულია სამიზნე ვებსაიტზე.
CSRF პრობლემების თავიდან ასაცილებლად საუკეთესო რამ, რაც შეგიძლიათ გააკეთოთ, არის CSRF ტოკენის ჩართვა. CSRF ჟეტონი არის შემთხვევით გენერირებული სტრიქონი, რომელიც დაყენებულია როგორც ქუქი, მნიშვნელობა უნდა იყოს ჩართული ყველა პასუხში მოთხოვნის სათაურთან ერთად, რომელიც შეიცავს მნიშვნელობას. მიუხედავად იმისა, რომ CSRF შეტევა შეიძლება შეიცავდეს ქუქი-ფაილს, შეუძლებელია CSRF ნიშნის მნიშვნელობის დადგენა სათაურის დასაყენებლად და, შესაბამისად, შეტევა უარყოფილი იქნება.