← Архив: Обсуждение проекта

Ещё одна более чем досадная бага :(

Author: · 26.10.2009 22:35
· original author: fionbio
HTML-текст, передаваемый при создании сообщения, парсится и затем снова сериализуется, но при этом сохраняет все теги. Как следствие, имеет место быть уязвимость XSS (Cross-Site Scripting), что есть очень нехорошо. Не так давно из-за подобной, правда, гораздо лучше спрятанной уязвимости пострадал Reddit (там стал размножаться javascript-червь). В качестве демонстрации я, используя Firebug, приделал к этому сообщению тег <script>, выдающий alert(), но если б я был, так скажем, злой и нехороший, мог бы сделать какую-нибудь пакость (например, выполнить какие-либо действия, пользуясь чужими куками). Я советовал бы как минимум фильтровать передаваемый браузером текст сообщения после его разбора в DOM (раз уж таковой всё равно так или иначе происходит) и оставлять только рарешённые теги. Важный момент - не стоит пытаться это сделать регулярками!