X-XSS-Protection був заголовком безпеки, який існує з версії 4 Google Chrome. Він був розроблений, щоб увімкнути інструмент, який перевіряє вміст веб-сайту на відображення міжсайтових сценаріїв. Усі основні браузери тепер припинили підтримку заголовка, оскільки в кінцевому підсумку він запровадив недоліки безпеки. Настійно рекомендується взагалі не встановлювати заголовок, а замість цього налаштувати сильну політику безпеки вмісту.
Порада: міжсайтові сценарії зазвичай скорочуються до абревіатури «XSS».
Відображені міжсайтові скрипти — це клас уразливості XSS, де експлойт безпосередньо закодований в URL-адресі і впливає лише на користувача, який відвідує URL-адресу. Відображений XSS є ризиком, коли веб-сторінка відображає дані з URL-адреси. Наприклад, якщо веб-магазин дозволяє шукати продукти, він може мати URL-адресу, яка виглядає так: «website.com/search?term=gift» і містить слово «gift» на сторінці. Проблема виникає, якщо хтось додає JavaScript в URL-адресу, якщо вона не продезінфікована належним чином, цей JavaScript може бути виконаний, а не надрукований на екрані, як має бути. Якщо зловмисник може обдурити користувача, щоб він натиснув посилання з таким типом корисного навантаження XSS, він міг би зробити такі дії, як взяти під контроль свій сеанс.
X-XSS-Protection був призначений для виявлення та запобігання цього типу атак. На жаль, з часом у роботі системи було виявлено ряд обходів і навіть вразливостей. Ці вразливості означали, що реалізація заголовка X-XSS-Protection призведе до вразливості міжсайтових сценаріїв на безпечному веб-сайті.
Щоб захиститися від цього, розуміючи, що заголовок політики безпеки вмісту, який зазвичай скорочується до «CSP», містить функціональні можливості для його заміни, розробники браузерів вирішили скасувати цю функцію. Більшість браузерів, включаючи Chrome, Opera та Edge, або скасували підтримку, або, у випадку Firefox, ніколи її не реалізували. Рекомендується веб-сайтам вимикати заголовок, щоб захистити тих користувачів, які все ще використовують застарілі браузери з увімкненою функцією.
X-XSS-Protection можна замінити на параметр «unsafe-inline» у заголовку CSP. Можливість увімкнути це налаштування може зайняти багато роботи залежно від веб-сайту, оскільки це означає, що весь JavaScript має бути у зовнішніх сценаріях і не може бути включений безпосередньо в HTML.