Что лучший способ состоит в том, чтобы сохранить вход/скидку с цены WMD в SQL-сервере и отобразиться позже?

Я смотрю на использование WMD в моем проекте вместо моего существующего RadEditor. Я читал несколько сообщений о том, как сохранить и получить данные, и я хочу удостовериться, что у меня есть понятие, корректное перед продолжением.

Если мое исследование корректно, вот то, что я должен делать.

  1. Я должен хранить данные редактора дважды (Однажды как HTML и однажды как Скидка с цены)
  2. Я должен выполнить HTML через Белый список прежде, чем сохранить его.
  3. Я должен выполнить HTML через AntiXSS на выходе (перед отображением)
  4. Я должен использовать данные Скидки с цены ТОЛЬКО для перезаполнения Скидки с цены для редактирования.

Кто-либо может подтвердить или отклонить, если это корректно, и также добавьте какой-либо полезный вход на предмете?

Ссылки
Переформатируйте мой код: Санируйте HTML
StackOverflow: как Вы храните скидку с цены с помощью WMD в сети asp
StackOverflow: санируйте HTML прежде, чем сохранить в дб или прежде, чем представить antixss библиотеку
StackOverflow: объекты HTML хранилища в базе данных или преобразовывают при получении

10
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Я использую Markdown в движке блогов, который пишу (кто не пишет движки блогов?), И я также реализовал Markdown в ряде настраиваемых CMS, которые у меня есть. написано для клиентов.

Я делаю это очень похоже на то, как это делает команда Stack Overflow:

  1. Я использую wmd.js в качестве редактора на стороне клиента.
  2. Я использую обработку на стороне сервера MarkdownSharp.
  3. Я использую Sanitize HTML Джеффа Этвуда для обработки HTML.

Вот некоторые ресурсы, которые говорят о Markdown:

Внизу строка:

  1. Я сохраняю сообщение в том виде, в котором оно было отправлено; Он отображается с помощью MarkdownSharp.
  2. Я очищаю HTML, используя подход Джеффа Этвуда (на выходе, а не на входе).
  3. Я использую «лучшие практики» ASP.NET MVC (очень субъективный термин) для работы с XSS и XSRF.
8
ответ дан 4 December 2019 в 02:25
поделиться

Таким образом, одна из идей, лежащих в основе Markdown, заключается в том, что он создает «безопасный» HTML-код - не должно быть необходимости в отдельном кодировании.

В более общем плане я бы рекомендовал хранить «сырые» данные в базе данных без их преобразования или очистки. Вы всегда должны дезинфицировать или преобразовывать как можно ближе к точке рендеринга - это дает большую гибкость (о, внезапно мне нужно отображать как RSS. Или JSON. Черт, я не могу, потому что я предварительно отформатировал для HTML) и должен Если вы обновите дезинфицирующее средство или средство визуализации, вы увидите влияние обновления на каждый фрагмент данных.

Я бы сказал, хранить текст уценки в базе данных, а затем преобразовывать его, когда вы хотите, чтобы он отображался, используя для этого библиотеку уценки, которая, теоретически, должна создавать весь безопасный HTML из его безопасного списка тегов и атрибутов.

0
ответ дан 4 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: