ColdFusion выполняет esapi OWASP через Java

У меня есть старый код 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);

Они работают одинаково?


person James A Mohler    schedule 07.11.2018    source источник
comment
Да, функции encodeForX() за кулисами используют ESAPI OWASP. encodeForHTML() — это CF10+ и имеет аргумент canonicalize, который уменьшает ввод до наименьшего коэффициента. CF2016 добавил аргумент encodeFor к тегу cfoutput для вывода. Также есть функция canonicalize(), которая выдает ошибку, которую вы можете поймать. Это полезно для того, чтобы увидеть, не пытается ли кто-то ввести гнусные данные в вашу форму. Нет законной причины для двойного или множественного кодирования ввода. Аргумент в функции encodeForX() не выдает ошибку, а просто возвращает результат.   -  person Shawn    schedule 08.11.2018
comment
Вы должны написать это как ответ.   -  person James A Mohler    schedule 08.11.2018


Ответы (1)


Да, функции encodeForX() за кулисами используют ESAPI OWASP. encodeForHTML() — это CF10+ и имеет аргумент canonicalize, который уменьшает ввод до наименьшего коэффициента. CF2016 добавил аргумент encodeFor к тегу cfoutput для аналогичного вывода. Также есть функция canonicalize(), которая выдает ошибку, которую вы можете поймать. Это полезно для того, чтобы увидеть, не пытается ли кто-то ввести гнусные данные в вашу форму или сайт. Я не могу придумать законной причины для двойного или множественного кодирования ввода, и я бы интерпретировал это как атаку. Аргумент в функции encodeForX() сведет ее к базовой оценке, но не выдаст ошибку, а просто вернет результирующий вывод. Лично я не уверен, что есть много случайных способов передать значение, которое будет подхвачено канонизацией, и я бы предпочел поймать эту попытку и выкинуть этого пользователя с моего сайта.

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-eg/encodeforhtml.html

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-cd/Canonicalize.html

https://www.owasp.org/index.php/Category:Encoding

person Shawn    schedule 08.11.2018