Санация струн в Coldfusion и на любом языке очень важна и зависит от того, что вы хотите сделать со строкой.большинство мер смягчения для
- сохранения контента в базе данных (например,
<cfqueryparam ...>
) - с использованием контента для отображения на следующей странице (например, вставьте параметр url в ссылку или покажите параметр url втекст)
- сохранение файлов и использование загружаемых файлов и содержимого
Всегда существует риск, если вы будете следовать идее предотвращения и сокращения строки, разрешив в основном все на первом этапе изатем очистить вредоносный код «прочь», удалив или заменив символы (подход черного списка).Лучшее решение - заменить строки регулярными выражениями rereplace(...)
, которые явно разрешают использовать только символы, необходимые для сценария, в котором вы используете его, в качестве простого решения, когда это возможно.варианты использования - это ввод чисел, списков, адресов электронной почты, URL-адресов, имен, почтовых индексов, городов и т. д.
Например, если вы хотите запросить адрес электронной почты, вы можете использовать
<cfif reFindNoCase("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{5})$", stringtosanitize)>...ok, clean...<cfelse>...not ok...</cfif>
(или собственное регулярное выражение).Для HTML-Imput или CSS-Imput я бы также рекомендовал OWASP Java HTML Sanitizer Project .