• 其他配置选项
    • 通用配置
      • 插件相关
      • 文件日志相关
      • syslog 日志相关
      • 拦截相关
      • 其他配置
    • PHP 版本独立配置
    • Java 版本独立配置
      • hooks.ignore 全部可选值

    其他配置选项

    通用配置

    以下配置支持云端下发,也支持单机修改。若开启远程管理,单机配置不会加载;如果没有开启,Java 版本单机配置修改后立即生效,PHP 大部分情况下会立即生效。

    目前配置路径如下:

    • PHP 版本: <openrasp_rootdir>/conf/openrasp.yml
    • Java 版本: <app_home>/rasp/conf/openrasp.yml

    插件相关

    参数值说明默认值
    plugin.timeout.millis对于单个检测算法,JS 插件超时时间 (毫秒)100
    plugin.maxstack插件获取堆栈的最大深度100
    plugin.filter针对文件访问hook点,是否开启过滤机制。若开启,当目标文件不存在,将不进入检测插件。 支持 directory, readFile, rename, include 四个 hook 点true
    body.maxbytes最多读取 POST body 的前多少字节4096
    lru.maxsize当某个攻击参数判定为 ignore,会进入缓存,下次不再处理。LRU 目前只针对数据库、文件访问生效,且所有检测点共享一个LRU。1024
    ognl.expression.minlength为了减少OGNL检测的性能损耗,当OGNL语句达到这个长度才调用插件30

    文件日志相关

    参数值说明默认值
    log.maxstack报警日志记录的最大堆栈深度(v1.2开始废弃)50
    log.maxburst每个进程/线程每分钟最大日志条数100
    log.maxbackup日志最大备份天数30

    syslog 日志相关

    syslog.facility 的值请参考 What are Syslog Facilities and Levels,比如 7 表示 news 类型。

    参数值说明默认值
    syslog.enable是否开启 syslogfalse
    syslog.url服务器地址(空)
    syslog.tagtag 值OpenRASP
    syslog.facilityfacility 值1
    syslog.connection_timeout连接超时时间 (毫秒)50
    syslog.read_timeout读超时时间 (毫秒)10
    syslog.reconnect_interval重连时间间隔 (秒)300

    拦截相关

    参数值说明默认值
    block.status_code拦截攻击后,将状态码设置为这个值302
    block.redirect_url拦截攻击后,跳转到这个URL,并根据模板设置 request_id 参数https://rasp.baidu.com/blocked/?request_id=%request_id%
    block.content_json拦截攻击后,若期望响应类型为JSON,则根据此模板显示内容{"error":true,"reason": "Request blocked by OpenRASP","request_id": "%request_id%"}
    block.content_xml拦截攻击后,若期望响应类型为XML,则根据此模板显示内容<?xml version="1.0"?><doc><error>true</error><reason>Request blocked by OpenRASP</reason><request_id>%request_id%</request_id></doc>
    block.content.html拦截攻击后,若期望响应类型为其他情况,则根据此模板显示内容</script><script>location.href="https://rasp.baidu.com/blocked2/?request_id=%request_id%"</script>

    其他配置

    参数值说明默认值
    request.param_encoding设置参数的编码格式,用于在用户解析参数之前按照该编码提前获取参数,仅Java支持(空)
    clientip.header从指定的 HTTP header 里获取客户端真实IP,并记录到报警日志的 client_ip 字段里。注意: 本配置区分大小写。ClientIP
    inject.urlprefix对于以下URL,修改响应并注入HTML(空)
    debug.leveldebug 等级,0为关闭 debug 模式0
    decompile.enable是否开启反汇编功能,开启后可获取源代码,但是会非常消耗性能0

    PHP 版本独立配置

    以下配置无法云端下发,需要放在 php.ini 里,修改后重启PHP服务器生效。

    参数值说明默认值
    openrasp.root_diropenrasp 根目录,存放插件、日志(空)
    openrasp.locale配置的语言类型(空)
    openrasp.heartbeat_interval心跳间隔,单位秒180
    openrasp.backend_url云控后台 URL 地址(空)
    openrasp.app_id云控通信使用的 app_id 值(空)
    openrasp.app_secret云控通信使用的 app_secret 值(空)
    openrasp.remote_management_enable是否开启远程管理功能false

    Java 版本独立配置

    以下配置虽然还是在 openrasp.yml 里,但是无法云端下发,且修改后需要重启服务器生效。

    参数值说明默认值
    cloud.backend_url云控后台 URL 地址(空)
    cloud.app_id云控通信使用的 app_id 值(空)
    cloud.app_secret云控通信使用的 app_secret 值(空)
    cloud.enable是否开启远程管理功能false
    cloud.heartbeat_interval心跳间隔,单位秒180
    hooks.ignore默认开启全部 hook 点,有不需要的可在这里关闭,逗号分隔。(空)

    hooks.ignore 全部可选值

    其中 http_output 为HTML注入功能,其他的都比较好理解。修改后需要重启 Java 应用服务器。

    hooks.ignore=sql,sqlPrepared,directory,request,readFile,writeFile,fileUpload,command,xxe,ognl,deserialization,include,ssrf,http_output,webdav,sqlSlowQuery,rename,dubboRequest

    若要禁用所有 hook 点,可直接使用 hooks.ignore=all 配置。