Какво е фалшифициране на искания между сайтове?

CSRF или фалшифициране на междусайтови заявки е уязвимост на уебсайт, при която нападателят може да предизвика действие в сесията на жертвата на друг уебсайт. Едно от нещата, които правят CSRF толкова голям риск, е, че дори не изисква взаимодействие с потребителя, всичко, което е необходимо, е жертвата да види уеб страница с експлойта в нея.

Съвет: CSRF обикновено се произнася или буква по буква, или като „морски сърф“.

Как работи CSRF атака?

Атаката включва нападателят да създаде уебсайт, който има метод за отправяне на заявка на друг уебсайт. Това може да изисква взаимодействие с потребителя, като например да ги накара да натиснат бутон, но може да бъде и без взаимодействие. В JavaScript има начини да накарате действието да се случи автоматично. Например, изображение нула по нула пиксела няма да бъде видимо за потребителя, но може да бъде конфигурирано така, че неговият „src“ да отправи заявка към друг уебсайт.

JavaScript е език от страна на клиента, това означава, че JavaScript кодът се изпълнява в браузъра, а не на уеб сървъра. Благодарение на този факт компютърът, който прави заявката за CSRF, всъщност е този на жертвата. За съжаление това означава, че заявката е направена с всички разрешения, които потребителят има. След като атакуващият уебсайт е подмамил жертвата да отправи CSRF заявка, заявката е по същество неразличима от потребителя, който прави искането нормално.

CSRF е пример за „объркана заместническа атака“ срещу уеб браузъра, тъй като браузърът е измамен да използва своите разрешения от нападател без тези привилегии. Тези разрешения са вашите токени за сесия и удостоверяване към целевия уебсайт. Вашият браузър автоматично включва тези подробности във всяка заявка, която прави.

CSRF атаките са малко сложни за организиране. На първо място, целевият уебсайт трябва да има формуляр или URL, който има странични ефекти като изтриване на вашия акаунт. След това нападателят трябва да създаде заявка за извършване на желаното действие. И накрая, нападателят трябва да накара жертвата да зареди уеб страница с експлойта в нея, докато са влезли в целевия уебсайт.

За да предотвратите проблеми с CSRF, най-доброто нещо, което можете да направите, е да включите CSRF токен. CSRF маркерът е произволно генериран низ, който е зададен като бисквитка, стойността трябва да бъде включена във всеки отговор заедно със заглавка на заявката, която включва стойността. Въпреки че CSRF атаката може да включва бисквитката, няма начин да се определи стойността на CSRF маркера, за да се зададе заглавката и така атаката ще бъде отхвърлена.