Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хранение html в БД / 7 сообщений из 7, страница 1 из 1
17.02.2014, 19:50
    #38563611
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
Есть сайт на MVC3. Решил хранить статьи в БД. Статьи представляют из себя текст с html-разметкой, добавляютмя на страницу через Html.Partial. Столкнулся с двумя проблемами: при загрузке текста из БД производится автоматическая замена символов <, >, " и т.д. на escape-последовательности, а при попытке сохранить статью через сайт получаю сообщение о том, что данные вроде "<p class=articleParagraph..." являются небезопасными. Как быть? Как это вообще реализуется? Наверняка ведь есть типовые решения.
...
Рейтинг: 0 / 0
17.02.2014, 20:11
    #38563631
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
По первому вопросу - попробуй для переброски статьи в представление воспользоваться не string, а MvcHtmlString.Create() - такая строка не будет преобразовываться
...
Рейтинг: 0 / 0
17.02.2014, 20:37
    #38563646
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
Спасибо, действительно, помогло. А я-то городил преобразование через jQuery. :)
Вот бы ещё со второй частью разобраться...
...
Рейтинг: 0 / 0
17.02.2014, 20:57
    #38563661
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
1) @Html.Raw(model.SomeData)
2) [ValidateInput(false)] для экшена
...
Рейтинг: 0 / 0
17.02.2014, 21:28
    #38563682
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
[ValidateInput(false)] для экшена
---
это есть не очень безопасно, привет XSS

XSS (англ. Сross Site Sсriрting — «межсайтовый скриптинг») — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. Является разновидностью атаки «внедрение кода».

в модели представления помечаем нужно свойство:

Код: c#
1.
2.
[AllowHtml]
public string Company_name { get; set; }


подробней - http://prokomputer.ru/forum/threads/kak-zapisat-html-kod-v-bd-a-zatem-vyvesti-razmetku-v-predstavlenii.72/

есть библиотека AntiXSS, разработанная Microsoft, но она к чертям портит всю разметку,
...
Рейтинг: 0 / 0
18.02.2014, 10:26
    #38564013
maxapet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
А в чём заключается то, что MS Anti-XSS портит разметку?
...
Рейтинг: 0 / 0
18.02.2014, 15:52
    #38564769
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение html в БД
maxapetА в чём заключается то, что MS Anti-XSS портит разметку?

AntiXSS + html раазметка
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Хранение html в БД / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]