Продовжуючи тему технологій захисту від Cross-Site Scripting атак, після статей про HttpOnly та метод захисту з JavaScript, розповім про іншу технологію захисту від XSS атак. Яка передбачає використання заголовка X-XSS-Protection.
Заголовок X-XSS-Protection встановлюється на сервері до всіх веб сторінок, які треба захистити від XSS атак на стороні клієнта (тобто це клієнтська технологія, що вимагає підтримки браузером). Для цього веб додаток повинен у своїй відповіді вказати відповідний серверний заголовок:
X-XSS-Protection: 1; mode=block
Якщо вказати “1″, то браузер з підтримкою цього заголовка, включить захист від XSS на даній сторінці. Режим захисту може бути стандартний (фільтрація потенційного XSS коду), або блокування (що задається параметром mode=block).
Даний заголовок був розроблений Microsoft і вперше його підтримка була додана в Internet Explorer 8 в березні 2009. Пізніше Google додала його підтримку в свій браузер Chrome. В 2010 році була виявлена уразливість в XSS Filter в IE8, що дозволяла виконувати атаки на веб сторінки, що навіть не мали XSS уразливостей.
Особливості даної технології:
1. Використання заголовка захищає лише від reflected XSS.
2. Захист працює лише в браузерах, що підтримують заголовок. В цьому плані технологія схожа на HttpOnly (але HttpOnly підтримують набагато більше браузерів).
X-XSS-Protection підтримують наступні браузери:
Internet Explorer 8+
Google Chrome 8+ (спочатку в версії 4.0 була додана експериментальна функція “XSS Auditor”, але в версії 4.1 вона була відключена через виявлені уразливості й знову включена лише в версії 8.0).
Дана технологія захисту від XSS атак має свої достоїнства та недоліки. Як я вже казав, жодна з цих допоміжних технологій не може дати 100% гарантію захисту від XSS атак і вирішує лише частину проблеми, тільки виявлення та виправлення всіх XSS уразливостей дасть надійних захист. Але ці технології можна використати в парі з проведенням аудиту безпеки своїх сайтів, як додатковий елемент безпеки.