Лучшие практики Решения по сохранению HTML? - PullRequest
2 голосов
/ 16 февраля 2012

У меня есть клиент-серверное приложение (asp.net), в котором есть текстовое поле, которое пользователь вводит в html elements + text.

данные, отправляемые от клиента к серверу через1005 *.(до ashx)

Допустим, клиент пишет:

<b> Hello </b> 

, поэтому я:

1) encodeUriComponent весь текст.1016 * 2) Html Encode Специальные символы (например, &gt; &lt;)

3) отправляют это на сервер

4) сохраняют в БД.

Вопрос:

Каков предпочтительный способ сохранения в дБ?

С &gt; &lt;?или я должен декодировать его и затем сохранить?

(данные должны быть представлены пользователю, когда-нибудь в будущем ...)

Ответы [ 2 ]

0 голосов
/ 16 февраля 2012
  1. POST необработанный ввод HTML в нужное вам действие
  2. Используйте атрибут [AllowHtml] в нужном поле вашей модели.
  3. Использование Microsoft Anti-XSS библиотека для удаления любого javascript и т. Д. (Если это не предусмотрено).
  4. Сохранение необработанного HTML-кода в вашей базе данных, но обязательно используйте параметризованные запросы для предотвращения атак внедрения.
  5. Остановите HTML-кодировку всего,Это выглядит ужасно.
0 голосов
/ 16 февраля 2012

Вы можете сохранить его в сырой базе данных, но я настоятельно рекомендую вам использовать какой-то синтаксический анализ для очистки ввода. Вам нужно будет убрать нестандартный html и любые попытки javascript и т. Д. В противном случае это огромный риск безопасности. Вы можете использовать html tidy .net wrapper здесь.

http://markbeaton.com/SoftwareInfo.aspx?ID=81a0ecd0-c41c-48da-8a39-f10c8aa3f931

...