ASP.NET контролирует и AntiXss
Я делаю некоторую работу AntiXSS. Пользователь вводит некоторый текст, который затем проходит через
Microsoft.Security.Application.Encoder.HtmlEncode();
и сохраняется в базе данных.
Этот текст затем может отображаться либо в метке, либо в текстовом поле.
Если я добавлю закодированный текст в свойство text метки, он будет отображаться нормально. Если я назначу его текстовому свойству текстового поля, оно будет отображаться в закодированной форме.
Как правильно отобразить текст в текстовом поле и на ярлыке? Предлагает ли библиотека какие-либо механизмы декодирования?
Из-за требований проекта я не могу изменить ни библиотеку, ни тот факт, что она закодирована на входе.
3 ответа
Ты можешь использовать Server.HtmlDecode
или же HttpUtility.HtmlDecode
,
Ты делаешь это неправильно. Вы не должны вводить HtmlEncode и сохранять его в базе данных, так как не существует поддерживаемого способа его декодирования. Скорее вы должны сохранить необработанную информацию и закодировать ее при отображении.
Я предлагаю использовать GetSafeHtmlFragment
для удаления всех тегов и атрибутов, которых нет в белом списке. Ниже ссылка будет полезна.