Безопасное кодирование <script>содержимого в ASP.NET Core (проблема ETAGO) - PullRequest
0 голосов
/ 11 января 2019

Проект, над которым я работаю, требует, чтобы сгенерированные пользователем данные сервера были закодированы в JSON и отправлены вместе с документом HTML в тегах сценария. В данный момент я делаю это с классом TagBuilder, используя метод InnerHtml.AppendHtml(...) для написания содержимого скрипта.

С тех пор я обнаружил, что мне нужно экранировать / кодировать содержимое сценария, как если бы пользовательский контент имел по какой-либо причине текст "</script>" где-то, анализатор HTML заканчивает тег сценария (другой HTML, вероятно, также имеет различные побочные эффекты) .

Я прочитал этот пост в блоге, который описывает, как справиться с ситуацией в среде Node.js с помощью библиотеки jsesc. Существует ли что-нибудь подобное для .NET (в идеале Core или Standard)?

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

Редактировать

Из-за нехватки времени в настоящее время я внедрил JSON в элемент HTML в качестве значения атрибута, и ядро ​​ASP.Net Core автоматически их кодирует.

К сожалению, он увеличивает размер HTML-документа чуть больше, чем хотелось бы, поскольку двойные кавычки кодируются как &quot;, но это так и есть.

Я оставляю этот вопрос открытым, хотя в случае ответа на мой первоначальный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...