Русское сообщество fluxbb

Быстрый лёгкий надёжный форумный движок

Вы не вошли.

Объявление

Вы можете внести свой вклад в содержание сайта. Жертвователи попадут в почетную группу "Спонсоры". Поддержать сайт.

#1 2010-12-23 10:51:07

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Безопасность BB-кодов

На одном из форумов по phpBB в разделе обсуждения новых BB-кодов есть такое сообщение

Возможные проблемы с безопасностью, связанные с XSS (межсайтовым скриптингом) при использовании {TEXT} в тегах HTML.
Попробуйте применить лексемы {SIMPLETEXT} или {INTTEXT}, использующие более строгие проверки выполнения.

То есть это значит, что если в ббкоде используется скрипт, iframe или сложный код - не применяйте или измените {TEXT} на {SIMPLETEXT} или {INTTEXT} (по всему ббкоду).

Если BBCode простейший, например выравнивание - это не так страшно.

Насколько реальна вероятность XSS?

Offline

#2 2010-12-23 18:49:49

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Безопасность BB-кодов

У себя ужесточил проверки

  // bbcode VIDEO
     if (strpos($text, '[video]') !== false)
    {
        $text = preg_replace('#\[video\]http://www.youtube.com/watch\?v=([-_a-zA-Z0-9]+?)(&.*?)?\[/video\]#U',
            '</p><div class="bbvideo"><p><a href="http://www.youtube.com/watch?v=$1">http://www.youtube.com/watch?v=$1</a></p>'.
            '<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/$1"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" width="640" height="385"></embed></object>'.
            '</div><p>', $text);

        $text = preg_replace('#\[video\]http://rutube.ru/tracks/([0-9]+?).html\?v=([a-zA-Z0-9]+?)\[/video\]#U',
            '</p><div class="bbvideo"><p><a href="http://rutube.ru/tracks/$1.html?v=$2">http://rutube.ru/tracks/$1.html?v=$2</a></p>'.
            '<object width="640" height="385"><param name="movie" value="http://video.rutube.ru/$2"></param><param name="wmode" value="window"></param><param name="allowFullScreen" value="true"></param><embed src="http://video.rutube.ru/$2" type="application/x-shockwave-flash" wmode="window" width="640" height="385" allowFullScreen="true" ></embed></object>'.
            '</div><p>', $text);

        $text = preg_replace('#\[video\]http://vimeo.com/([0-9]+?)\[/video\]#U',
            '</p><div class="bbvideo"><p><a href="http://vimeo.com/$1">http://vimeo.com/$1</a></p>'.
            '<object width="640" height="385"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=$1&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=$1&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="385"></embed></object>'.
            '</div><p>', $text);

        $text = preg_replace('#\[video\]http://smotri.com/video/view/\?id=([a-zA-Z0-9]+?)\[/video\]#U',
            '</p><div class="bbvideo"><p><a href="http://smotri.com/video/view/?id=$1">http://smotri.com/video/view/?id=$1</a></p>'.
            '<object id="smotriComVideoPlayer" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360"><param name="movie" value="http://pics.smotri.com/player.swf?file=$1&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/player.swf?file=$1&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"  width="640" height="360" type="application/x-shockwave-flash"></embed></object>'.
            '</div><p>', $text);
    }

Offline

#3 2010-12-24 10:40:35

artoodetoo
Admin by chance
Зарегистрирован: 2008-09-09
Сообщений: 887
Сайт

Re: Безопасность BB-кодов

я вообще не понял сути проблемы. что еще за {TEXT} ?


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Offline

#4 2010-12-24 11:23:57

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Безопасность BB-кодов

artoodetoo пишет:

я вообще не понял сути проблемы. что еще за {TEXT} ?

В phpBB подстановка такая есть

        $sp_tokens = array(
            'URL'     => '(?i)((?:' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('url')) . ')|(?:' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('www_url')) . '))(?-i)',
            'LOCAL_URL'     => '(?i)(' . str_replace(array('!', '\#'), array('\!', '#'), get_preg_expression('relative_url')) . ')(?-i)',
            'EMAIL' => '(' . get_preg_expression('email') . ')',
            'TEXT' => '(.*?)',
            'SIMPLETEXT' => '([a-zA-Z0-9-+.,_ ]+)',
            'IDENTIFIER' => '([a-zA-Z0-9-_]+)',
            'COLOR' => '([a-zA-Z]+|#[0-9abcdefABCDEF]+)',
            'NUMBER' => '([0-9]+)',
        );

И не проблема, а вопрос у меня был wink

Offline

#5 2010-12-24 11:50:12

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Безопасность BB-кодов

Ужесточил проверку тега audio

  // bbcode AUDIO
    if (strpos($text, '[audio]') !== false)
    {
        $text = preg_replace('#\[audio\](http://[^\s<"]+?.mp3)\[/audio\]#U',
            '</p><div class="bbvideo"><p><a href="$1">$1</a></p>'.
            '<object type="application/x-shockwave-flash" data="swf/mp3player.swf" id="audioplayer1" height="24" width="290">'.
            '<param name="movie" value="swf/mp3player.swf">'.
            '<param name="FlashVars" value="playerID=audioplayer1&soundFile=$1">'.
            '<param name="quality" value="high">'.
            '<param name="menu" value="false">'.
            '<param name="wmode" value="transparent">'.
            '</object> </div><p>', $text);
    }

Offline

#6 2010-12-24 14:02:15

scalemaster
Участник
Зарегистрирован: 2009-08-10
Сообщений: 134

Re: Безопасность BB-кодов

Visman пишет:

Насколько реальна вероятность XSS?

Базы под Дженах уже продаются во всю

Offline

#7 2010-12-24 14:37:38

Visman
Administrator
Из Сибирь
Зарегистрирован: 2009-06-08
Сообщений: 2,236
Сайт

Re: Безопасность BB-кодов

scalemaster пишет:

Базы под Дженах уже продаются во всю

Разъясни, пожалуйста. Не понял о чем речь.

Offline

#8 2010-12-24 15:50:00

scalemaster
Участник
Зарегистрирован: 2009-08-10
Сообщений: 134

Re: Безопасность BB-кодов

Visman, Djenah xss

Offline

Подвал доски

Под управлением FluxBB. Хостинг Hostens