Прочитав статью с того сайта вы похоже до сих пор немного не разобрались как действовать. Моя идея фильтрации данных на стороне сервера такова:
1) для начала декодируем все данные, заменяя все подобные вещи
![](http://habrastorage.org/storage2/2a4/967/52a/2a496752afd2fa3d72cd9b8ee045f98a.png)
на нормальные символы, с которыми далее будем работать
3) далее при нахождении границ тега, будь то ... мы удаляем все непечатаемые(?) символы (в т.ч. и переносы строк) в параметрах тега а так же между открывающим и закрывающим. Проблема будет лишь с \0, но если работать с данными как с массивом символов, а не как со строкой — то наверное удастся их обойти.
3) затем работа с параметрами тега, соответственно убираем всё, что не является нормальным URL-адресом, и по возможности, избавляемся от тега, если вдруг URL «небезопасный» (безопасными URL я думаю стоит считать лишь те, которые начинаются с http:// или https://, ну и на крайний случай —
... в общем вам решать)