Очистить ввод текста для отображения на странице HTML
Построили чат-программу для нашего сайта. Часть программы действительно позволяет область комментариев веб-страницы для чата о странице.
Таким образом, есть ввод текста, поэтому текст вводится и отображается заново на странице.
Очевидно, что это потенциально рискованно.
Поэтому, чтобы сделать ввод текстовой строки безопасным для повторного отображения на веб-странице, могу я просто запретить <
а также >
символы и их закодированные xml и шестнадцатеричные эквиваленты?
Без тегов сценария есть ли другой потенциальный вектор атаки, который может быть встроен в текстовую строку?
1 ответ
На самом деле вам не нужно запрещать этих персонажей, вы можете просто избежать их (например, >
становится >
; и так далее). Это безопасно конвертирует весь HTML в читаемый текст. Помните, что это не только теги сценария, вы также можете делать такие вещи, как <span onmouseOver="javascript here">
Вы также можете загружать изображения, которые могут использовать слабые стороны браузера, вы можете добавить iframes, которые отображают вредоносный контент и так далее. Так что HTML-экранирование всей строки, вероятно, самый безопасный вариант.
В проекте OWASP есть несколько библиотек C#, которые вы можете использовать для своих целей. https://www.owasp.org/index.php/.NET_AntiXSS_Library