【问题标题】:JSON support was not enabled-Modsecurity未启用 JSON 支持-Modsecurity
【发布时间】:2016-02-04 13:48:49
【问题描述】:

1) 我已经使用 --with-yajl 使用 YAJL 编译了 modsecurity,但是在配置日志中我看到没有选择 yajl 库,并且在 modsecurity 日志中我得到了 “未启用 JSON 支持”

【问题讨论】:

  • 即使在 make 文件中使用 --with-yajl.. 我看到以下 YAJL_CFLAGS = YAJL_LDADD = YAJL_LDFLAGS = YAJL_LIBS = 的空白值

标签: mod-security yajl


【解决方案1】:

我最初让 mod_security 使用 PHP 5.5 和 Apache 2.4 以及 Ubuntu 12.04,但在启用 JSON 请求检查后,我遇到了与您报告的相同的错误。

要修复它,我必须制作 yajl,使用 yajl 配置选项重新编译 mod_security,然后确保 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,然后再尝试制作。

【讨论】:

    【解决方案2】:

    检查您的 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”来定位它。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 1970-01-01
      相关资源
      最近更新 更多