то потом же будет показан не форматированный текст, а текст весь в тегах... его наверно не надо делать в htmlspecialchars???
а тогда в него могут скрипт воткнуть или еще чего...
или надо как-то извлекать по другому???
Спустя 1 день, 2 часа, 19 минут, 11 секунд (22.10.2010 - 06:55) Белый Тигр написал(а):
Если вы о том, чтоб дать пользователям сайта пользоваться WYSIWYG-редакторами, то это очень плохая идея. Так не далеко до XSS, для защиты от которых и нужна функция htmlspecialchars(). Подобными редакторами лучше пользоваться в админ-панели, для создания администратором статей или новостей. Если уж так хочется чтоб пользователи имели на сайте нечто подобное, то посмотрите в сторону простейших редакторов, имеющих всего несколько основных тегов типа <b>, <i> и т.д. без возможности указаниях их свойств (<tag name="value">)
При этом на стороне сервера всегда придётся проверять поступивший от пользователя текст, вырезая всё кроме выбранных вами тегов.
При этом на стороне сервера всегда придётся проверять поступивший от пользователя текст, вырезая всё кроме выбранных вами тегов.
Спустя 1 час, 39 минут, 7 секунд (22.10.2010 - 08:35) sergeiss написал(а):
Цитата (zsaz @ 21.10.2010 - 05:36) |
или надо как-то извлекать по другому??? |
htmlspecialchars_decode() - функция, обратная к htmlspecialchars.
Но и контролировать то, что выводится, тоже надо. То есть, некоторые тэги, действительно, лучше "запретить". То есть их выводить в виде символов, чтобы они просто показывались как тэги, без их обработки браузером.
Спустя 13 дней, 2 часа, 8 минут, 34 секунды (5.11.2010 - 11:43) Guest написал(а):
даже в разрешенных вами тегах можно вставить всякие там onclick / onmouseover и прочее
Спустя 4 часа, 7 минут, 50 секунд (5.11.2010 - 15:51) Белый Тигр написал(а):
Если добавить проверку на их чистоту, то ничего страшного не будет. Разрешить например тег <b> только в таком виде, и ни в каком другом.
Здесь может помочь preg_replace с регулярками вида #<b(.*)>#
Здесь может помочь preg_replace с регулярками вида #<b(.*)>#
_____________