ФорумПрограммированиеPHP для идиотов → Боремся с XSS

Боремся с XSS

  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 14 июля 2008 г. 18:40, спустя 9 минут 29 секунд


    я ж говорю, отрезаю все лишние тэги с помощью strip_tags, оставляя лишь те, которые только к форматированию текста относятся + есть те, которые необходимо фильтровать, это: <a>, <img> и всё

    Зато свойства у "разрешённых" тегов strip_tags не режет, поэтому я не за его использование.
    и все-таки я уверен, что это хороший вариант
    есть желание резать эти свойства, оставив список разрешенных свойств и все, тут не велика работа, всего лишь 2 несчастных тэга.
    Сделаю, потом вместе будем глядеть на дыры и гаварить ай-ай-ай, дурак, понаписал тут кода :)


    ссылки и картинки

    Сделайте для них 2 бб-кода простейших типа [a]ссылка[/a] и . Только без лишних свойств типа - как раз из-за косяков регулярок через такие свойства XSS и проводят.
    не думаю, что мешать html и bb коды это правильно
    представляю, как неудобно, когда заставляю заполнять анкету на разных языках. Все на русском, а поле "Ваши интересы" заполните по-английски, т.к. наша регулярка не разберет то, что Вы написали на русском.
    все умрут, а я изумруд
  • kendo

    Сообщения: 446 Репутация: N Группа: Адекваты

    Spritz 14 июля 2008 г. 21:07, спустя 2 часа 27 минут 26 секунд

    не думаю, что мешать html и bb коды это правильно

    но, например, liveinternet.ru прекрасно с этим справляется :) Хотя… там немного другого масштаба проект O:-)
  • Kuzya

    Сообщения: 26 Репутация: N Группа: Кто попало

    Spritz 14 июля 2008 г. 21:35, спустя 27 минут 18 секунд

    Я вообще целиком и полностью за использование бб-кодов. Но раз нужен чистый html то html =). На счёт фильтрации думаю что придётся писать запутанные регулярки, хотя если подойти с умом то можно слабать регулярку которая будет проверять наличие 1-2 свойств и при этом будет не очень запутанная.
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 15 июля 2008 г. 10:49, спустя 13 часов 13 минут 54 секунды

    госпади да какая разница html или bb
    в том же xbb можно переопределить [ на < и заставить его обрабатывать html
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 23:11, спустя 130 дней 13 часов 22 минуты

    лучше в бб кодах дать редактировать, или ты утверждаешь что хтмл - прозрачнее чем ббкоды ? для человека и пусть даже написания статей ? имхо хтмл тяжеловат даже для программиста, на хабре я ненавижу писать в хтмл - тупой метод, лучше бы сделали бб редактор.
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2008 г. 23:16, спустя 4 минуты 23 секунды


    лучше в бб кодах дать редактировать, или ты утверждаешь что хтмл - прозрачнее чем ббкоды ? для человека и пусть даже написания статей ? имхо хтмл тяжеловат даже для программиста, на хабре я ненавижу писать в хтмл - тупой метод, лучше бы сделали бб редактор.

    А я придерживаюсь противоположного мнения. ББ-коды какой-то суррогат непонятный.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 23:22, спустя 6 минут 2 секунды

    смотря что на них делать. если надо нарисовать табличку то ето да …
    а кстати чем ббкоды непонятнее хтмл ? :-D ведь у них даже имена одинаковые! только ограничители разные.
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2008 г. 23:35, спустя 13 минут 44 секунды

    Вопрос не в том, чем ббкоды понятнее хтмл. Вопрос в том, чем хтмл непонятнее ббкодов?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 23:46, спустя 10 минут 22 секунды

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

    доказательство вот

    чето или я дурак, но у меня
    Просто код:

    cyka <img src="javascript:alert(1);" />
    <a href="javascript:alert('cyka');">go cyka</a>



    выдает только алерт при нажатии на ссылку
    а js в тэге <img /> не выдается и даже если ссылаться на js файл


    в опере нормуль всё выдаеться =))


    этих доказательств достаточно? :)

    итого: проще анализ, меньше уязвимостей.
    Сапожник без сапог
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 22 ноября 2008 г. 23:52, спустя 5 минут 58 секунд

    Нужно просто резать весь «javascript:» и не допускать употребления атрибутов (onClick, onMouseOver и т. д.).
    Кроме того, ББ-кодами иногда нельзя реализовать то, что можно реализовать тегами.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 ноября 2008 г. 23:56, спустя 4 минуты 17 секунд

    такой кастрированный хтмл код - бб коды )))

    скажем прямо, все зависит от количества тегов, которые нужны ТС. и возможностей, а представить в бб кодах можно хоть чо, хоть формулы, аля wikipedia. хз, хтмл - не панацея.
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!