Проект, над которым я работаю, требует, чтобы сгенерированные пользователем данные сервера были закодированы в JSON и отправлены вместе с документом HTML в тегах сценария. В данный момент я делаю это с классом TagBuilder
, используя метод InnerHtml.AppendHtml(...)
для написания содержимого скрипта.
С тех пор я обнаружил, что мне нужно экранировать / кодировать содержимое сценария, как если бы пользовательский контент имел по какой-либо причине текст "</script>"
где-то, анализатор HTML заканчивает тег сценария (другой HTML, вероятно, также имеет различные побочные эффекты) .
Я прочитал этот пост в блоге, который описывает, как справиться с ситуацией в среде Node.js с помощью библиотеки jsesc. Существует ли что-нибудь подобное для .NET (в идеале Core или Standard)?
Я хотел спросить, прежде чем бросить свой, потому что я всегда устал делать это для кода, связанного с безопасностью.
Редактировать
Из-за нехватки времени в настоящее время я внедрил JSON в элемент HTML в качестве значения атрибута, и ядро ASP.Net Core автоматически их кодирует.
К сожалению, он увеличивает размер HTML-документа чуть больше, чем хотелось бы, поскольку двойные кавычки кодируются как "
, но это так и есть.
Я оставляю этот вопрос открытым, хотя в случае ответа на мой первоначальный вопрос.