Не так давно один из представителей группы по безопасности из компании Mozilla, а именно Brandon Sterne объявил о начале разработки специального механизма для браузера FireFox, который будет регулировать поведение веб-содержимого и политику его ограничения в среде браузера. Идея об ограничении содержимого впервые была предложена в блоге Robert “RSnake” Hansen, известного специалиста по web-безопасности. Его мысли были быстро подхвачены и развиты сотрудниками из Mozilla Security Team. В итоге общая концепция воплотилась в Site Security Policy, о котором я сегодня и хотел бы рассказать.
На стороне пользователя Site Security Policy реализован в виде плагина для FireFox, который добавляет в браузер новую функциональность, способную ограничивать определенные возможности JavaScript, в частности межсайтовые запросы. На стороне веб-разработчика Site Security Policy представляет собой набор правил, задаваемых в HTTP-заголовках. Грамотное распределение привилегий для веб-содержимого поможет веб-разработчикам предотвратить XSS и CSRF-атаки на их сайтах. Главное отличие Site Security Policy от другого плагина, защищающего пользователя от подобных атак – NoScript, состоит в том, что политика ограничений задается непосредственно разработчиком, а не на программном уровне. Людям свойственно ошибаться, программам подобного рода свойственно делать ложные срабатывания, так что какой из этих вариантов более предпочтителен – довольно спорный вопрос.
Углубившись в спецификацию SSP можно заметить, что правила чем-то напоминают директивы из .htaccess, несмотря на то, что реализованы они в виде HTTP-заголовков. Между прочим разногласия по этому поводу не умолкают и по сей день: некоторым программистам кажется, что намного удобнее было бы задавать правила в META-тэгах страниц, другие предпочитают нечто вроде crossdomain.xml.
Итак, в распоряжении веб-разработчика имеется четыре заголовка для определения ограничений:
- X-SSP-Script-Source определяет список хостов, с которых разрешено или запрещено выполнять скрипты
- X-SSP-Request-Source определяет список хостов, которым разрешено или запрещено делать HTTP-запросы
- X-SSP-Request-Target определяет список хостов, на которые разрешено или запрещено делать HTTP-запросы
- X-SSP-Report-URI устанавливает URL, на который будут посылаться отчеты о нарушениях политики безопасности
К сожалению, Site Security Policy работает только в FireFox и никаких сведений по поводу внедрения SSP в другие браузеры пока нет. Тем не менее, Site Security Policy – это несомненный прогресс в области безопасности веб-приложений.
Leave a Reply