Междусайтов скриптинг – как да защитите сайта от XSS атака

Здравей, читателю! В днешната статия ще ви разкажа за опасността от междусайтов скриптинг или така наречената XSS атака на сайта, какво означава това и как професионално и лесно да защитите вашия сайт от тази потенциална заплаха за сигурността.

Какво означава термина XSS атака?

Междусайтовият скриптинг (Cross Site Scripting) е уязвимост, която позволява на злосторника да внедри вредоносен код (обикновено JavaScript или HTML) в съдържанието на сайта. Вредоносния код се изпълнява във браузъра на ползвателя, който преглежда заразената страница на сайта.

Това позволява на злосторника да получи конфиденциална информация.

Хакерите могат да експлоатират различни уязвимости. Най разпространените са два типа атаки:

  • Отразена (Reflected XSS) – най разпространената не постоянна тип атака, изискваща изпълнение на определени действия от ползвателя.
  • Постоянна (Persistent XSS) – постоянен тип атака с внедряване на вредоносен код на сървъра, който не изисква вмешателство от страна на потребителя.

xss атака

Отразена XSS атака

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

  1. Злосторника внедрява в хипер линка вредоносен скрипт, даващ възможност да се преглеждат бисквитките (cookies) и го изпраща на жертвата по електронната поща или по други средства за комуникация.
  2. При кликване върху линка в писмото попадате в капана.
  3. Скрипта се изпълнява във браузъра на жертвата.
  4. Браузъра изпраща бисквитките на злосторника, като така му дава достъп до личните данни на жертвата.

За разпространение на вредоносните линкове се използват различни методи – електронна поща, коментарите в сайта, съобщения в социалните мрежи.

Постоянна XSS атака

За успешно изпълнение на тази атака на злосторника му е нужно само да намери уязвимост във сайта и да постави на своя сървър вредоносния скрипт. След това във сайта се слага таг <script>, който зарежда скрипт със вредоносния код от външния сайт, например, в коментарите. При зареждане на заразената страница вредоносния скрипт всеки път се зарежда във браузъра на жертвата.

  1. Атакуващия открива сайт със XSS уязвимост и изпълнява инжектиране на вредоносния скрипт, който краде бисквитките на ползвателя.
  2. При всяко влизане в сайта вредоносния скрипт се активира бе да се изискват някакви действия от страна на жертвата.
  3. Бисквитките за тази сесия се изпращат на организатора на атаката.

Включване на защита X-XSS-Protection

X-XSS-Protection е предназначен за включване на филтъра за междусайтов скриптинг, който се съдържа във всички съвременни браузъри. Позволява, например, да се предотврати изпълнението на таг <script> в URL линк във страницата.

  • 0 – XSS защитата е изключена.
  • 1; mode=block – XSS защитата е включена, браузъра ще спре зареждането на страницата при откриване на атака.
  • 1; report=URL – XSS защитата е включена, браузърът ще изчисти страницата от опасното съдържание и ще изпрати отчет.

Директива «report» за изпращане на отчети казва на браузъра на ползвателя да съобщава за опитите за нарушаване на политиката за безопасност на съдържанието.

Препоръчвам ви да настроите сървъра така, че при XSS атака да блокира зареждането на страницата със опасния код. Във файла със допълнителни настройки .htaccess (или httpd.conf, ако имате пълен достъп на сървъра) на уеб сървъра Apache (повечето хостинг компании използват именно Apache) трябва да добавите следния скрипт:

<ifModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>

За сървър използващ Nginx във файл nginx.conf във раздел HTTP запишете това:

add_header X-XSS-Protection "1; mode=block";

В случай, че липсва достъп до конфигурационните файлове на сървъра, но има поддръжка на PHP, може да използвате функция:

<?php header("X-XSS-Protection: 1; mode=block"); ?>

Cross Site Scripting, известен също и като XSS е един от начините за внедряване на вредоносен код, който се изпълнява на страната на жертвата. В повечето случаи атаката се извършва във фонов режим и жертвата не може да забележи нищо.

Надявам се, че вече разбирате какво е XSS атака и как да се защитите от нея. Горещо ви препоръчвам да я използвате във вашите сайтове. Всичко хубаво и успех.

С уважение, Николай Томов.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *