Как мы все знаем к настоящему времени, XSS-атаки опасны и их действительно легко осуществить . Различные фреймворки позволяют легко кодировать HTML, как это делает ASP.NET MVC:
<%= Html.Encode("string"); %>
Но что происходит, когда ваш клиент требует, чтобы он мог загружать свой контент прямо из документа Microsoft Word?
Вот сценарий: люди могут копировать и вставлять содержимое из Microsoft Word в редактор WYSIWYG (в данном случае tinyMCE ), а затем эта информация публикуется на веб-странице.
Веб-сайт является общедоступным, но только члены этой организации будут иметь возможность размещать информацию на веб-странице.
Как мне справиться с этими требованиями безопасным способом? В настоящее время не выполняется проверка того, что клиент публикует (поскольку только «доверенные» пользователи могут публиковать сообщения), но я не особенно доволен этим и хотел бы заблокировать его в дальнейшем в случае взлома учетной записи.
Единственный концептуальный метод, который мне известен и который отвечает этим требованиям, состоит в том, чтобы внести белые теги в HTML-теги и пропустить их . Есть ли другой способ? Если нет, то каков безопасный способ разрешить пользователю хранить входные данные в базе данных в любой форме, но только отображать их правильно закодированными и лишенными неверных тегов?