Спустя 4 часа, 54 минуты, 41 секунда (1.11.2010 - 03:12) vital написал(а):
Дык а что там филтровать? Находите preg_replacom все нужные вам и меняте на соответствующую хтмлку.
в духе
и т.п.
в духе
preg_replace('[b ]','<b>',$text);
preg_replace('[/b]','</b>',$text);
и т.п.
Спустя 1 минута, 22 секунды (1.11.2010 - 03:13) vital написал(а):
Черт, админы, не парсите ббкод в теге кода=)
Спустя 34 минуты, 9 секунд (1.11.2010 - 03:47) twin написал(а):
Спустя 6 часов, 42 минуты, 6 секунд (1.11.2010 - 10:29) Guest написал(а):
спасибо за все! но тока где найти все bb-коды, который нуждаются в замене?
Спустя 8 минут, 45 секунд (1.11.2010 - 10:38) twin написал(а):
А зачем искать... Сам пиши какие надо.
Спустя 1 минута, 40 секунд (1.11.2010 - 10:40) Guest написал(а):
я просто не знаю, какие опасные, какие надо заменять) подскажите, пожалуйста. например, какие вы заменяете, когда пишете код для textarea
Спустя 4 минуты, 13 секунд (1.11.2010 - 10:44) twin написал(а):
Не понял Какой код для textarea
Спустя 5 минут (1.11.2010 - 10:49) Guest написал(а):
допустим, есть
какие bb-теги вы бы заменили здесь?
<textarea cols="10" rows="5"></textarea>
какие bb-теги вы бы заменили здесь?
Спустя 43 минуты, 28 секунд (1.11.2010 - 11:33) Белый Тигр написал(а):
Не нужно путать HTML-теги с bb-кодами. Это совершенно разные вещи.
По теме: По своему опыту могу сказать что опасными являются те BB-коды, которые помещают данные пользователя в какие-либо свойства html-тегов. Например [img]. В большинстве случаев текст типа
По теме: По своему опыту могу сказать что опасными являются те BB-коды, которые помещают данные пользователя в какие-либо свойства html-тегов. Например [img]. В большинстве случаев текст типа
Цитата |
[ img]http://host.ru/1.jpg[ /img] |
превратится в
Цитата |
<img src="http://host.ru/1.jpg" /> |
То есть тут адрес, принятый от пользователя, попал в свойство HTML-тега. Подробно всю суть объяснять не буду, это очень долго. Скажу в кратце. Если регулярные выражения, которые обрабатывают такие bb-коды построены неверно, то есть шанс того, что пользователь может засунуть свойства одних тегов в другие, тем самым нарушив целостность итоговых html-кодов. У многих движков были такие проблемы - e107, phpBB, IPB и т.д.
Там при определённом сообщении можно было получить код типа
Цитата |
<img src="http://hos<a href="http://host1.ru/1.html">t.ru/1.jpg" />wegwg</a> |
И вот так, аккуратно подбирая содержимое bb-кодов, можно было добавлять в теги дополнительные обработчики событий с произвольным Js-кодом. Например, вписать img-тегу обработчик onload/onerror с кодом кражи авторизационных данных.
Решаются такие проблемы просто. Нужно не полениться, и составить для всех bb-кодов крайне точные регулярные выражения. То есть, если например выражение обрабатывает тот же [img], то оно должно его обработать только в том случае, когда внутри него находится URL, а не что-то ещё. Многие разработчики ленятся это делать, и составляют выражения типа
Цитата |
[ img](.*)[ /img] |
отсюда и проблемы.
Спустя 12 минут, 31 секунда (1.11.2010 - 11:45) Guest написал(а):
а ты можешь подсказать, как их составить?
Спустя 7 минут, 3 секунды (1.11.2010 - 11:52) DedMorozzz написал(а):
поиск -> Конкурс ББ-декодер.
Спустя 13 минут, 20 секунд (1.11.2010 - 12:05) Guest написал(а):
не нашел
Спустя 6 минут, 44 секунды (1.11.2010 - 12:12) twin написал(а):
Я давал ссылку... Не понравилось, тут смотри.
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 54 минуты, 59 секунд (1.11.2010 - 13:07) Белый Тигр написал(а):
Цитата (Guest @ 1.11.2010 - 08:45) |
а ты можешь подсказать, как их составить? |
Цитата |
То есть, если например выражение обрабатывает тот же [img], то оно должно его обработать только в том случае, когда внутри него находится URL, а не что-то ещё. |
Ну и с другими соответственно. Парсишь код [url] - ищи в нём именно ссылку. [color] - именно обозначение цвета и т.д.