Хочу долить еще ложку мёда дегтя, в бочку того, что написано про уязвимости межсайтового скриптинга.

Инъекции HTML тэгов – это, конечно, здорово, и все такое, но дополнительный вес эти инъекции получают, когда такие тэги попадают в статический кэш.

Об этом самом статическом кэшэ и хочу поговорить.

Веб-приложения не редко воспринимают оттуда  конструкции интерпретатора или, по крайней мере, конструкции шаблонов своего “птичьего языка”. Ну а выполнить произвольный код что в одном, что во втором случае – в принципе, дело техники.

Например, вот живое подтверждение:

XSS, которую я нашел в системе Блоголет (http://blogolet.ru) в том году, переросла в PHP injection.

Отсутствие фильтрации, казалось бы чисто XSS-ных < > приводит к сохранению в статическом кэшэ выражений вида <?php ?> и фильтровать такое по слову php смысла никакого ;) – <? ?>

А например, для шаблона %market getPrice(phpinfo())% тоже частенько срабатывает при недочетах шаблонизатора. Какие бывают шаблонизаторы я рассматривать сейчас, естественно, не буду.

Еще вариант – кэширование в виде массивов и не фильтрация XSS-ных ‘ “. Выглядеть это может так:

text’.phpinfo().’sadas

text”.phpinfo().”sadas

Просто прошу заострить внимание на фильтрацию того, что лезет в кэш,и от XSS полечитесь и инъекции кода избежите.

Очень прощу примеры таких атаки постить в камменты.