![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
Собственно никогда не ожидал, что задам такой тупой вопрос.
Есть html, пришедший от пользователя. Надо добавить его на стараницу. Как это сделать безопасно относительно CSS и проблем в верстке? Примеры проектов, где это сделано: lj, mail.ru и т.д. Вопрос: как? Просьба не предлагать унылые варианты вроде "Да регекспами" или "Удали все <script> и т.д.". Нужно нормальное решение, думаю, что некоторые с этим работали. Пока я знаю решение(машина состояний с 2 режимами(html/css)), но не улыбает меня это руками писать. |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
||||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Задача как-то сильно абстрактно сформулирована...
Может BB коды? Можно разделить юзеров на группы с разными привилегиями. С нулевой привилегией делать striptags на все, что не соответствует тегам U,I,B,STRONG, H1,H2,H3, BR, P, ... стили выкинуть. Со следующими - позволять вольности со стилями (список прилагается в документации...) в тегах, но не более,... и так далее,... суровым одминам позволять фсё... Юзер как захочет, настолько глубоко и закопается... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
ksnk, нет, мне нужно, чтобы все пользователи могли постить html.
Надо обезопаситься от XSS. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
nerezus, Ну тогда это будет что-то большое умное и монстрообразное, на вроде этого самого safehtml. А сам он чем не устраивает? Вроде обещают какую-то особую гибкость в настройке и на первый взгляд не особенно и врут
Как вариант немного другого подхода - можно разбить вводимый юзером текст на элементарные блоки. Для каждого блока состряпать формочку ввода с вариантами размещения элементов. -- заголовок- текст жестко обрезать от лишних тегов. Выравнивать по разным сторонам + размер заголовка. -- текст + фото - текст жестко обрезать от лишних тегов, оставляя только болд-неболд++. Фотографию подпихивать справа-флот или слева флот или по центру - нефлот. -- список ссылок - комплект ссылок по столбикам -- табличку вставить -- еще чего по надобности. Каждый элементарный блок можно достаточно жестко урезать в стилях, и для каждого блока написать шаблон, который будет укладываться в дизайн сайта. Так как бы и юзер сможет достаточно много информации написать и в дизайн сайта достаточно несложно вписаться и за безопасность, как бы не так страшно... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nerezus |
|
||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
ksnk,
|
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Не! не так. Нужно заставить юзера самого разбить свою одну новость на элементарные блоки. Одна новость состоит из нескольких блоков, которые размещаются друг за другом... "Я спросил у Гугеля"..., Как правило, народ долго выспрашивает чем-же чистить от лишних тегов, ему (народу) тычут в tidy, мол пиши сам... а он, (народ) берет safehtml и предпочитает не парится. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
ksnk, мы исходим из того, что среднестатистический юзверь не шарит в компьютерных делах. И это факт.
Поэтому ему дается WUSIWUG редактор и он творит, что хочет. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
Ну, интересный такой системе среднестатистический юзер, по крайней мере, не должен пугаться компьютера, Експлорера и Визивиг редактора
Не так и сложно объяснить такому среднестатистическому юзеру, что текст новости нужно разбить на логические куски... Ну а если юзер такой непонятливый, он сможет нарыть и скопипастить такой кусок разметки, что никакой safehtml не раберется. Может ну его нафиг такого непонятливого юзера - своеобразный тест на сообразительность Впрочем, народ пока не бежит предлагать замену safehtml'ю, может новый год с рождеством еще справляют? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |