Мы разрабатываем приложение, которое вводит пользователя как Html и отображает тот же Html как вывод на другой странице. И вход никогда не должен иметь никакого динамического поведения в нем, как теги скрипта.Должен ли я Html кодировать вход Html от пользователя?
We Html Кодировать значение в Javascript и сохранять закодированное значение в БД. We Html Декодирование сохраненного значения и рендеринг его на новой странице для получения ожидаемого результата (см. Пример ниже).
Из того, что я до сих пор читал, должен был Html кодировать входные данные, прежде чем рендерить его как вывод на другой странице. Проблема я столкнулся в том, что независимо от Html добавленные пользователем, отображается то же самое в новой странице
Пример:
Ввод данных пользователем:
<div><h2>Header</h2><p>this is the body text</p></div>
Выход в новой страницы при кодировании Html и присвоении ее другому div:
<div><h2>Header</h2><p>this is the body text</p></div>
Ожидаемые:
Header
this is the body text
Единственный способ, которым я был в состоянии достичь ожидаемого результата, когда я Html декодируется сохраненное значение и назначил его другой элемент управления контейнером.
Я что-то упустил, я пробовал все способы, которыми я знаю Html Кодирование ввода пользователя и его возврат не дает ожидаемого результата. Любая идея о том, как достичь этого?
Если нет другого решения, существует ли какая-либо система проверки в .net, чтобы избежать атак XSS. Я прошел через систему AntiXSS от microsoft, они больше для удаления любых вредоносных html и кодирования. Они не помогают сообщить пользователю, что они не должны вводить некоторые теги.
Благодарим за любую помощь заранее.
Есть ли смысл сохранять кодированные значения, а затем декодировать их снова для вывода? – user3865301
Мое предпочтение заключается в том, чтобы не кодировать, прежде чем я буду хранить в базе данных, потому что по дороге вы можете показать его в формате * other *, чем HTML. –