URL кодирование не влияет на некоторые существенные признаки, включая одинарные кавычки ('
) и скобки, поэтому кодирование URL будет проходить через неизменные определенные полезные нагрузки.
Например,
onload'alert(String.fromCharCode(120))'
будет рассматриваться некоторыми браузерами, как действительный атрибут, который может привести к выполнению кода при введении внутри тега.
Лучший способ избежать XSS - обработать все ненадежные входы как обычный текст, а затем при составлении вывода правильно закодировать весь текст на соответствующий тип на выходе.
Если вы хотите отфильтровать входы как дополнительный уровень безопасности, убедитесь, что ваш фильтр обрабатывает все кавычки (включая обратную галочку) и круглые скобки в качестве возможного кода и запрещает их, если не имеет смысла для этого ввода.
sanitize! = Validate –
Это зависит от контекста, который вы хотите использовать в этой строке. Итак, где вы его выводите? – Gumbo
Основная причина, по которой HP Fortify SCA перечисляет это как «плохую проверку», заключается в том, что кодирование НЕ является валидацией. Вы должны увидеть это как проблему Fortify Medium ", потому что он признает, что были предприняты некоторые усилия для смягчения проблемы. – LaJmOn