Лучший способ обеспечить безопасность и избежать XSS с введенными пользователем URL-адресами

Чтобы сделать ссылку "безопасной", нужно xss-prevention пройти три или четыре этапа:

  • Отменить экранирование / перекодировать заданную строку (RSnake задокументировал ряд уловок в http://ha.ckers.org/xss.html , которые используют экранирование и кодирование UTF).
  • Очистите ссылку: регулярные выражения - хорошее начало - не забудьте обрезать строку или выбросить ее, если она содержит "(или что-то еще, что вы используете для закрытия атрибутов в своем выводе); если вы делаете ссылки только в качестве ссылок на другую информацию вы также можете принудительно использовать протокол в конце этого процесса - если часть перед первым двоеточием не является «http» или «https», тогда добавьте «http: //» в начало. Это позволяет вам для создания полезных ссылок из неполного ввода, как пользователь вводит текст в браузере, и дает вам последний шанс спровоцировать любые неприятности, к которым кто-то пытался проникнуть.
  • Убедитесь, что результатом является правильно сформированный URL (протокол: //host.domain [: порт] [/ путь] [/ [файл]] [? queryField = queryValue] [#anchor]).
  • Можно сравнить результат с черным списком сайта или попытаться получить его с помощью какой-нибудь программы проверки на вредоносное ПО.

Если urls безопасность является приоритетом, я xss-prevention надеюсь, что пользователи xss-prevention простят немного паранойи cross-site-scripting в этом процессе, даже если cross-site-scripting в конечном итоге некоторые html-sanitizing безопасные ссылки будут отброшены.

security

url

xss

html-sanitizing

2022-11-04T15:45:13+00:00
Вопросы с похожей тематикой, как у вопроса:

Лучший способ обеспечить безопасность и избежать XSS с введенными пользователем URL-адресами