Как обновить jar-файл AntiSamy в ColdFusion 11?

Мне нужно обновить jar-файл OWASP AntiSamy, который находится по адресу ColdFusion11\cfusion\lib.

В настоящее время там находится файл antisamy-1.4.4.jar, но я хочу обновить его до последней версии antisamy-1.5.3.jar, которую я скачал с OWASP и поместил в папку cfusion\lib.

Кто-нибудь знает, как я могу указать ColdFusion использовать последнюю версию файла? Где-нибудь есть путь к файлу в каком-то файле конфигурации?

В CF Administrator я вижу как старый файл, так и новый файл в разделе «Сводка настроек», но как узнать, какой из них используется для включения функции GetSafeHTML?


person volume one    schedule 06.09.2015    source источник


Ответы (1)


Я хочу обновить это до последней версии

Насколько я знаю, списка отдельных файлов нет. По крайней мере, не для «основных» jar-файлов, используемых сервером CF. Он просто проверяет определенные каталоги, такие как {cf_root}\lib, web-inf\lib и т. д., и загружает все найденные файлы *.jar.

Если вы хотите, чтобы CF использовал другую версию для основных тегов и функций, вы должны заменить существующий файл jar новым. Фактическое имя файла jar не имеет значения. Важно иметь только единственную версию библиотеки в пути к классам CF. В противном случае CF просто использует первую найденную версию< /а>.

Вы также можете попробовать поместить новый jar-файл в lib/ext каталог. IIRC, эти банки должны иметь приоритет над банками в {cf_root}\lib.

Примечание: Поскольку вы заменяете/переопределяете версию, используемую CF, вам следует провести некоторое тестирование, чтобы убедиться, что новая версия библиотеки обратно совместима и что ее замена ничего не сломает. Как отмечено в комментариях ниже, всегда есть риск проблем при работе со встроенными jar-файлами CF...

person Leigh    schedule 06.09.2015
comment
В случае возникновения проблемы с заменой JAR-файла, как его добавить, чтобы можно было использовать отдельно? (BIF — это хорошо, но не тогда, когда Adobe никогда не обновляет библиотеки.) Спасибо. - person James Moberg; 07.09.2015
comment
(Изменить) @JamesMoberg - Не знаю, о чем вы спрашиваете. Если вы хотите заменить основные функции/теги, вы не можете запускать несколько версий AFAIK. Только с конкретным кодом приложения, например this.javaSettings. Тем не менее, всегда есть риск, когда вы связываетесь со встроенными библиотеками CF, как отмечалось выше. Я редко делал это, поэтому я не могу сказать, что произойдет. - person Leigh; 07.09.2015
comment
Поэтому я удалил antisamy-1.4.4.jar и поместил antisamy-1.5.3.jar в папку. Кажется, он работает точно так же, как и раньше, поэтому я не могу сказать, использует ли CF новую библиотеку. Я предполагаю, что он должен использовать новую версию 1.5.3, если старая была удалена, верно? - person volume one; 07.09.2015
comment
(Редактировать) После этого вы перезапустили CF, да? Это необходимо для того, чтобы изменение было обнаружено. См. раздел Определение, из какого банка был загружен класс.... Хотя не думайте, что все в порядке ;-) Вам нужно провести некоторые тесты, чтобы убедиться, что ничего не сломалось. Очевидно, восстановить оригинальную банку, если это необходимо. Кроме того, Джеймс делает справедливое замечание. Что произойдет, если обновление CF попытается обновить антисамовую версию? - person Leigh; 07.09.2015
comment
@Leigh Да, мне пришлось остановить сервер CF, изменить файл и снова запустить его. Я заметил, что при обновлении CF он перезаписывает файл политики antisamy-basic.xml. На данный момент мне придется обновлять файл antisamy xml и jar вручную после каждого обновления CF. Вся причина обновления заключается в том, что у меня возникли проблемы с обработкой тегов HTML5 антисамами, и я думал, что обновление исправит это. Это не так. - person volume one; 07.09.2015
comment
Жаль это слышать. Не то, чтобы это помогло найти исправление, но из любопытства.. с точки зрения предотвращения переопределения файла jar и xml CF, вы могли бы попробовать поместить банку в lib\ext? Кроме того, в документах говорится, что расположение XML-файла может быть указано в Application.cfc, т.е. this.security.antisamypolicy. - person Leigh; 08.09.2015
comment
@volumeone Я надеялся не испортить и не использовать устаревшую библиотеку Adobe. Можно ли загрузить обновленную стороннюю библиотеку Java, не связываясь со встроенными функциями Adobe? Например, Apache POI претерпел множество обновлений с тех пор, как Adobe изначально интегрировала его. Я хотел бы воспользоваться прошлыми исправлениями библиотек ошибок (т.е. обертыванием), но зависимость черного ящика ACF от более старых версий вызывает ошибки с более новыми библиотеками. Любые рекомендации по использованию более новых библиотек без влияния на встроенные функции черного ящика ACF? - person James Moberg; 08.09.2015