У меня есть старый код ColdFusion. Первоначально он был написан для CF9, но теперь работает на CF 2016.
application.cfc
local.esapi = createObject("java", "org.owasp.esapi.ESAPI");
application.esapiEncoder = local.esapi.encoder()
Гораздо позже
Обычная страница
form.Reason = application.esapiEncoder.encodeForHtml(form.Reason);
Я думаю заменить это на
form.Reason = encodeForHTML(form.Reason);
Они работают одинаково?
encodeForX()
за кулисами используют ESAPI OWASP.encodeForHTML()
— это CF10+ и имеет аргументcanonicalize
, который уменьшает ввод до наименьшего коэффициента. CF2016 добавил аргументencodeFor
к тегуcfoutput
для вывода. Также есть функцияcanonicalize()
, которая выдает ошибку, которую вы можете поймать. Это полезно для того, чтобы увидеть, не пытается ли кто-то ввести гнусные данные в вашу форму. Нет законной причины для двойного или множественного кодирования ввода. Аргумент в функцииencodeForX()
не выдает ошибку, а просто возвращает результат. - person Shawn   schedule 08.11.2018