Очистить ввод текста для отображения на странице HTML

Построили чат-программу для нашего сайта. Часть программы действительно позволяет область комментариев веб-страницы для чата о странице.

Таким образом, есть ввод текста, поэтому текст вводится и отображается заново на странице.
Очевидно, что это потенциально рискованно.

Поэтому, чтобы сделать ввод текстовой строки безопасным для повторного отображения на веб-странице, могу я просто запретить < а также > символы и их закодированные xml и шестнадцатеричные эквиваленты?

Без тегов сценария есть ли другой потенциальный вектор атаки, который может быть встроен в текстовую строку?

1 ответ

На самом деле вам не нужно запрещать этих персонажей, вы можете просто избежать их (например, > становится &gt; и так далее). Это безопасно конвертирует весь HTML в читаемый текст. Помните, что это не только теги сценария, вы также можете делать такие вещи, как <span onmouseOver="javascript here">Вы также можете загружать изображения, которые могут использовать слабые стороны браузера, вы можете добавить iframes, которые отображают вредоносный контент и так далее. Так что HTML-экранирование всей строки, вероятно, самый безопасный вариант.

В проекте OWASP есть несколько библиотек C#, которые вы можете использовать для своих целей. https://www.owasp.org/index.php/.NET_AntiXSS_Library

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