Міжсайтовий скриптинг
XSS (англ. Cross Site Scripting — «міжсайтовий скриптинг») — тип вразливості інтерактивних інформаційних систем у вебі. XSS виникає, коли на сторінки, які були згенеровані сервером, з якоїсь причини потрапляють користувацькі скрипти. Специфіка подібних атак полягає в тому, що замість безпосередньої атаки сервера зловмисники використовують вразливий сервер для атаки на користувача.
Для терміну використовують скорочення «XSS», щоб не було плутанини з каскадними таблицями стилів (абревіатура «CSS»).
Довгий час програмісти не приділяли їм належної уваги, вважаючи їх безпечними. Однак ця думка помилкова: на сторінці або в HTTP-Cookie можуть бути досить вразливі дані (наприклад, ідентифікатор сесії адміністратора). На популярному сайті скрипт може влаштувати DoS-атаку.
Класифікація
Пасивні
Пасивні XSS — скрипт не зберігається на сервері уразливого сайту, або він не може автоматично виконатися в браузері жертви. Для спрацьовування пасивної XSS потрібна якась додаткова дія (клік по лінку, вставка певного коду в текстове поле на сайті, тощо), яку повинна виконати жертва. Їх також називають першим типом XSS.
Активні
При активних XSS шкідливий скрипт зберігається на сервері, і спрацьовує в браузері жертви при відкритті сайту, що містить активну XSS. Їх також називають другим типом XSS.
Вразливість
Еван Джонсон, інженер компанії «CloudFlare» дослідив вебсайти з переліку «Топ мільйон» сайтів за відвідуваністю, обчислений компанією Alexa. Він виявив близько тисячі сайтів з цього переліку, налаштування веб-сервера яких надають зловмисникові можливість атакувати користувача із допомогою міжсайтового скриптингу. Він помітив, що веб-сервери вразливих сайтів повертають такий саме HTTP-заголовок Access-Control-Allow-Origin, як вказано в HTTP-заголовку Origin в запиті клієнта.
На думку інженера, це створює умови, завдяки яким зловмисник може обійти обмеження правила «Єдиного походження» (англ. Same Origin Policy)[1][2].
Примітки
- Evan Johnson (Feb 2016). Breaking Same Origin Policy On The Alexa 1 million.[недоступне посилання з липня 2019]
- Martin Anderson (23 Feb 2016). Cross-site scripting enabled on 1000 major sites – including financial sites. The Stack. Архів оригіналу за 24 лютого 2016. Процитовано 24 лютого 2016.