ASP.NET контролирует и AntiXss

Я делаю некоторую работу AntiXSS. Пользователь вводит некоторый текст, который затем проходит через

Microsoft.Security.Application.Encoder.HtmlEncode();

и сохраняется в базе данных.

Этот текст затем может отображаться либо в метке, либо в текстовом поле.

Если я добавлю закодированный текст в свойство text метки, он будет отображаться нормально. Если я назначу его текстовому свойству текстового поля, оно будет отображаться в закодированной форме.

Как правильно отобразить текст в текстовом поле и на ярлыке? Предлагает ли библиотека какие-либо механизмы декодирования?

Из-за требований проекта я не могу изменить ни библиотеку, ни тот факт, что она закодирована на входе.

3 ответа

Решение

Ты можешь использовать Server.HtmlDecode или же HttpUtility.HtmlDecode,

Ты делаешь это неправильно. Вы не должны вводить HtmlEncode и сохранять его в базе данных, так как не существует поддерживаемого способа его декодирования. Скорее вы должны сохранить необработанную информацию и закодировать ее при отображении.

Я предлагаю использовать GetSafeHtmlFragment для удаления всех тегов и атрибутов, которых нет в белом списке. Ниже ссылка будет полезна.

Другие вопросы по тегам