Большинство редакторов (CKEditor, CLEditor и NicEdit и многие другие) поддерживают два режима ввода: визуальный и прямой ввод (обычно называемый режимом HTML).
Когда пользователь вводит текст в визуальном режиме,редактор заботится о преобразовании html-подобных символов в соответствующую сущность HTML, пока пользователь печатает свой контент.В этом режиме редактор обычно добавляет для пользователя разметку (в основном абзацы).
Прямой ввод работает так, как вы ожидаете от имени;Пользователь подвергается воздействию HTML, из которого состоит его или ее содержимое.
Способ обработки входных данных в основном зависит от роли пользователя.
Если пользователю доверяют (т.е.администратор веб-сайта компании), пользователь должен иметь возможность использовать оба режима ввода.
Если пользователь не является доверенным (анонимный пользователь, оставляющий комментарий к записи в блоге), пользователь не должен иметь возможность вводить (потенциально злонамеренную, думаю, XSS ) разметку.
Если вашим пользователям требуются некоторые опции для форматирования их контента, вам, вероятно, следует рассмотреть возможность использования разметки другого типа, например BBCode .Это не позволяет пользователю вставлять любые теги <script>
в контент, который может быть показан другим пользователям.
Вам все равно нужно будет удалить любые HTML-теги из пользовательского контента.