Поддержка JSON не была включена-Modsecurity

1) Я скомпилировал modsecurity, используя YAJL, используя --with-yajl, но в журнале конфигурации я вижу, что библиотека yajl не выбрана, а в журнале modsecurity я получаю «Поддержка JSON не была включена»


person Java Geo    schedule 04.02.2016    source источник
comment
Даже после использования --with-yajl.. в файле make я вижу пустые значения для следующих YAJL_CFLAGS = YAJL_LDADD = YAJL_LDFLAGS = YAJL_LIBS =   -  person Java Geo    schedule 05.02.2016


Ответы (2)


Первоначально у меня mod_security работал с PHP 5.5 и Apache 2.4, с Ubuntu 12.04, но после включения проверки запросов JSON я получил ту же ошибку, о которой вы сообщили.

Чтобы исправить это, мне пришлось сделать yajl, перекомпилировать mod_security с параметром конфигурации yajl, а затем убедиться, что Apache использует обновленный mod_security, и перезапустить Apache.

Затем mod_security смог успешно проанализировать тело запроса json и больше не выводить ошибку.


Я пошел по адресу http://lloyd.github.io/yajl/ и нашел пакет загрузки для yajl-2.1.0, а затем ссылаются на https://gist.github.com/rpfilomeno/1140359f4bd360137a98.

Например:

tar -xvzf lloyd-yajl-2.1.0-0-ga0ecdde.tar.gz cd lloyd-yajl-66cb08c/ sudo ./configure sudo make sudo make install sudo ldconfig Это должно установить yajl. Затем cd в папку с файлами mod_security и запускаем

cd ../modsecurity-2.9.1/ sudo ./configure --with-yajl="/usr/local/lib /usr/local" sudo make sudo make install

Затем я настроил его для работы с Apache 2.4 и смог анализировать запросы с телом JSON.

*Обратите внимание, что при создании yajl, если возникает ошибка, связанная с тем, что cmake не установлен, запустите следующую команду sudo apt-get install cmake, а затем повторите попытку.

person pnairn    schedule 29.06.2016

Проверьте свой config.log, если он имеет следующее

checking for libyajl config script... no
checking for yajl install... no
configure: optional yajl library not found

Затем создайте ссылку на yajl.pc как

# ln -s /usr/local/share/pkgconfig/yajl.pc /usr/share/pkgconfig/yajl.pc

В моем случае файл yajl.pc находился в папке /usr/local/share/pkgconfig/. Если вы не можете найти его там, попробуйте "find / -name yajl.pc", чтобы найти его.

Надеюсь, это поможет вам.

person S M Azam    schedule 01.03.2016