Захист від XSS з HttpOnly

22:43 24.12.2012

Серед технологій захисту від XSS атак можна виділити дві основні групи: серверні та клієнтські. Перші працюють повністю на стороні сервера (до них можна віднести як виправлення XSS уразливостей, так і використання WAF), другі працюють на стороні клієнта (і можуть вимагати підтримки в браузерах).

Причому клієнтські технології можна розділити на такі, що вимагають клієнтської підтримки, та такі, що не вимагають (реалізовані на JS). Тому такі технології захисту від XSS атак повинні не тільки підтримуватися в браузерах (і відповідно старі браузери без їх підтримки не будуть захищені), але й вони повинні бути включені на сервері. В своєму новому циклі статей я розповім вам про деякі з клієнтських технологій захисту від XSS. Серед них є такий захист як плагіни до браузерів (такий як NoScript для Firefox), але я буду розповідати про ті, які реалізуються на рівні поєднання серверних налаштувань і клієнтської підтримки (серверні заголовки), або ж на рівні JavaScript.

Прикладами таких технологій, які орієнтовані на браузери, є технології захисту від ClickJacking, про які я розповідав торік. Серед них є як плагіни до браузерів чи секюрні браузери, так і JS захист та заголовок X-Frame-Options. Першим серед технологій захисту від XSS атак я розгляну HttpOnly.

Заголовок HttpOnly встановлюється до кукісів. Для цього веб додаток повинен у своїй відповіді вказати серверний заголовок Set-Cookie з параметром HttpOnly:

Set-Cookie: name=value; expires=Tue, 1-Jan-2013 00:00:00 GMT; path=/; HttpOnly

І кожен з кукісів з таким параметром буде доступний лише для сервера, але не для клієнтського коду (JS/VBS). Це вбереже від класичних атак на викрадення кукіса.

Але це не вбереже від інших атак через XSS уразливості. Бо XSS атаки не обмежуються лише викраденням кукісів, про що я наголошував неодноразово. А також PDP ще в 2007 році писав про те, чому HttpOnly кукіси не врятують від XSS атак. До того ж, в перші роки після появи цієї технології та й в останні роки виявлялися методи обходу httpOnly в деяких браузерах.

Заголовок HttpOnly був придуманий Microsoft для Internet Explorer 6 SP1 в 2002 році і пізніше підтриманий іншими розробниками браузерів. І особисто я не вважаю його надійним захистом від XSS. Жодна з цих допоміжних технологій не може дати 100% гарантію захисту від XSS атак і вирішує лише частину проблеми, тільки виявлення та виправлення всіх XSS уразливостей дасть надійних захист. Але ці технології можна використати в парі з проведенням аудиту безпеки своїх сайтів, як додатковий елемент безпеки.

HttpOnly підтримують наступні браузери:

Internet Explorer 6 (повністю пропатчений) (тільки захист від читання)
Internet Explorer 6 SP1 (тільки захист від читання)
Internet Explorer 7+ (захист від читання і запису)
Mozilla Firefox 3.0.6+ (захист від читання і запису)
Netscape Navigator 9.0b3+ (захист від читання і запису)
Opera 9.50+ (тільки захист від читання)
Apple Safari 5+ (захист від читання і запису)
Google Chrome перші релізи (тільки захист від читання)
Google Chrome 12+ (захист від читання і запису)


Одна відповідь на “Захист від XSS з HttpOnly”

  1. MustLive каже:

    You can read this article on English in The Web Security Mailing List: Methods of protection against XSS.

Leave a Reply

You must be logged in to post a comment.