WYSIWYG
Есть вопрос для web-специалистов… Вот задумался я об использовании WYSIWYG редактора в паблике. В админке пользуюсь tinymce, тут то понятно, но а если вытащить его в паблик — не будет ли это потенциальная дыра? Тут уж htmlspecialchars не поможет. Может кто задумывался?
27 комментариев
2. Если вы соблюдаете основы безопасности в серверном код, вас никто не взломает. Wysiwyg тут не причем, для серверного кода не имеет значения каким образом пользователь передал данные, они в любом случае не должны вызывать доверие.
Выше совершенно правильно замечено — хороших бесплатных унииверсальных решений мало, возможно, проще будет написать что-то своё.
О каких действиях идёт речь, которые сложно интерпретировать? Если не пытаться реализовать у себя гугл докс, то больших трудностей здесь не будет. Чистка мусора может быть легко осуществлена на стороне сервера (регулярные выражения в пхп-скрипте) путём отправки-приёма запроса либо на стороне клиента средствами javascript
Я говорю о простейшем редакторе, который подменяет текстовое поле фреймом, в котором выделенный фрагмент оборачивается тегами <b>, <i> и <a> или просто вставляется картинка. Для этого нужно иметь только минимальные представления о javascript и DOM. Да что там говорить, такую элементарную штуку даже я смогу сделать с моми фактически нулевыми познаниями в этом языке.
Что касается функций чистки, TinyMce вполне сносно справляется с этой задачей без серверной части. Зачем тогда писать свой, если есть реализованный и оттестированный с этим функционалом?
Я не говорил, что задача невыполнимая, я говорил, что для создания действительно стоящего продукта нужно время и опыт. Когда увижу первые 100 строк твоего кода к wysiwyg для kursk.me возможно изменю свое мнение.
И как бы там ни было, я продолжу стоять на своём, что примитивный визуальный редактор с функциями, близкими к тому, что мы видим здесь — это задача на считанные часы для программиста средней руки, если не ниже.
Часто при попытке взлома уязвимость ищут не в движке, а одном из его стороних компонент, в том числе и в TinyMCE.