基于nginx的waf方案naxsi源码理解(6)_策略处理

本文档说明

这里的策略处理以读取MainRule策略为例。
以naxsi_core.rules的首条策略做示例:

MainRule "rx:select|union|update|delete|insert|table|from|ascii|hex|unhex|drop|load_file|substr|group_concat|dumpfile" "msg:sql keywords" "mz:BODY|URL|ARGS|$HEADERS_VAR:Cookie" "s:$SQL:4" id:1000;

MainRule配置文件处理过程

处理入口

/* command handled by the module */
static ngx_command_t ngx_http_naxsi_commands[] = {
  /* BasicRule (in main) */
  { ngx_string(TOP_MAIN_BASIC_RULE_T),
    NGX_HTTP_MAIN_CONF | NGX_CONF_1MORE,
    ngx_http_naxsi_read_main_conf,          // 当读到以TOP_MAIN_BASIC_RULE_T,即MainRule开头配置时,就会调用该函数去解析
    NGX_HTTP_MAIN_CONF_OFFSET,
    0,
    NULL },

ngx_http_naxsi_read_main_conf函数

如何读入配置策略信息

  value = cf->args->elts;   /

你可能感兴趣的:(#,naxsi,nginx,waf,web应用防火墙,naxsi,api安全)