Мы хотим разрешить пользователям нашего веб-приложения оставлять заметки в формате html.
На стороне клиента мы предоставляем им ckeditor [http://ckeditor.com/], который представляет собой редактор wisywig, который генерирует html, который затем отправляется на сервер через форму.
Затем мы хотим отобразить заметки, созданные пользователями, точно в том же формате, в котором они их отправили.
Мои опасения:
Оставив в стороне атаки и плохие намерения, как я могу инкапсулировать заметку при отображении на сайте, чтобы a. Они не наследуют дизайн остальной части страницы b. Они не влияют на остальную часть страницы, например, случайно открывая и не закрывая тег или закрывая без открытия.
Атаки с внедрением вредоносного кода
На данный момент первое гораздо важнее, так как это внутренний продукт для наших клиентов, а не открытый для широкой публики. Но комментарии безопасности также очень приветствуются
Возможные решения, которые я рассматриваю:
- В идеале я ищу способ инкапсулировать эти фрагменты пользовательского html, например: внутри этой области я показываю то, что вы отправили (рендеринг, а не исходный код), вы не можете влиять и не подвергаетесь влиянию кода на другие части страницы
В частности, мы подумали об отображении заметок внутри фреймов.
- Другим естественным направлением является анализ вставленного содержимого и удаление материала.
Любые входные данные приветствуются, и в основном:
Как я могу «инкапсулировать» вставленное содержимое, если могу?
Любые комментарии по направлению iframe
Должен ли я в любом случае анализировать содержимое? Что мне обязательно нужно убрать?