ФорумПрограммированиеPHP для идиотов → Универсальная функция для защиты от XSS

Универсальная функция для защиты от XSS

  • smackthat

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

    Spritz 18 августа 2009 г. 15:20

    Привет! Ищу функцию, в которую передается html код (для статей, который до этого формируется в tinymce) и которая на выходе выдает очищенный от xss код.

    Нашел вот что, но оценить качество не могу, так как не силен во всех этих xss атаках:
    http://kallahar.com/smallprojects/php_xss_filter_function.php

    Интересует качественное универсальное решение, без лишнего изучения книг. Что можете посоветовать?
  • phpdude

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

    Spritz 18 августа 2009 г. 15:36, спустя 16 минут 29 секунд

    нахуй надо?
    Спустя 15 сек.
    htmlspecialchars = панацея ко всей этой сеошниковской хуйне
    Сапожник без сапог
  • smackthat

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

    Spritz 18 августа 2009 г. 15:46, спустя 9 минут 49 секунд

    Я сохраняю в базе данных статьи с форматированием. Тоесть там <b> <i> <p> <h1> и так далее. Без этого никак
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 18 августа 2009 г. 15:48, спустя 1 минуту 40 секунд

    юзай bbcode
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • adw0rd

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

    Spritz 18 августа 2009 г. 16:01, спустя 13 минут 1 секунду

    jevix
    adw/0
  • smackthat

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

    Spritz 18 августа 2009 г. 16:32, спустя 31 минуту 40 секунд

    спасибо, рассматриваю все варианты. Предлагайте еще если что-то знаете. Пишите что используете в такой ситуации.
  • adw0rd

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

    Spritz 18 августа 2009 г. 16:40, спустя 7 минут 43 секунды

    smackthat, почитай и попробуй jevix - думаю самое то
    adw/0
  • Mr.Pihto

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

    Spritz 18 августа 2009 г. 16:49, спустя 9 минут 7 секунд


    Я сохраняю в базе данных статьи с форматированием. Тоесть там <b> <i> <p> <h1> и так далее. Без этого никак

    эм.. при выводе данных юзай htmlspecialchars
  • smackthat

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

    Spritz 19 августа 2009 г. 3:06, спустя 10 часов 16 минут 51 секунду

    adw0rd, какойто странный этот jevix, сконфигурировал так:


    // set allowed tags
    $this->jevix->cfgAllowTags(array('p','i','b','u','em','strong','nobr',
    'li','ol','ul','sup','sub','h3','br','span'));

    // set short tags
    $this->jevix->cfgSetTagShort(array('br','nobr'));

    // set allowed atributes
    $this->jevix->cfgAllowTagParams('p', array('style'));
    $this->jevix->cfgAllowTagParams('span', array('style'));
    $this->jevix->cfgAllowTagParams('h3', array('style'));

    // other options
    $this->jevix->cfgSetTagCutWithContent(array('script', 'object', 'iframe', 'style'));
    $this->jevix->cfgSetAutoBrMode(false);


    Тоесть оно должно вырезать все теги с script, style. Так вот я вставил эти теги и вместо того чтобы их вырезать, оно вот что сделало:

    &lt;!– p { font-size: 400%; } –&gt;<p>[removed]// &lt;![CDATA[alert();// ]]&gt;[removed]
  • Mr.Pihto

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

    Spritz 19 августа 2009 г. 3:30, спустя 23 минуты 38 секунд

    на странице штуки подобного типа &lt; превращаюца в спец символы.. которые не выполняются а просто визуально изображаются
  • smackthat

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

    Spritz 19 августа 2009 г. 3:35, спустя 5 минут 21 секунду

    это конешно очень хорошо, но этой функцией
    $this->jevix->cfgSetTagCutWithContent(array('script', 'object', 'iframe', 'style'));

    должно настроиться удаление тегов вместе с содержанием, а этого не происходит.

    И еще, может есть какая-то библиотека или функция для оптимизации html кода, тоесть чтобы лишние теги удаляла, там например <span></span>
  • phpdude

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

    Spritz 19 августа 2009 г. 3:37, спустя 2 минуты 14 секунд

    smackthat, лобочки вы)

    http://ru2.php.net/tidy - самая адская библиотека. и скрипты при должной настройке отсечет и тп
    Сапожник без сапог
  • Mr.Pihto

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

    Spritz 19 августа 2009 г. 16:29, спустя 12 часов 51 минуту 43 секунды


    smackthat, лобочки вы)

    http://ru2.php.net/tidy - самая адская библиотека. и скрипты при должной настройке отсечет и тп
    кто вы?
  • smackthat

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

    Spritz 19 августа 2009 г. 17:49, спустя 1 час 19 минут 58 секунд

    tidy - как я понял заточенна под cleanup, подчистку, валидацию html, но не для защиты от xss. Пока остановился и изучаю http://htmlpurifier.org
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 19 августа 2009 г. 17:56, спустя 7 минут 13 секунд


    smackthat, лобочки вы)

    http://ru2.php.net/tidy - самая адская библиотека. и скрипты при должной настройке отсечет и тп

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