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