@@ -48,35 +48,36 @@ typedef struct {
48
48
} hash_table_item_int_ulong_t ;
49
49
50
50
typedef struct {
51
- ngx_log_t * ngx_log ; /* 记录内存池在进行操作时的错误日志 */
52
- ngx_pool_t * ngx_pool ; /* 模块所使用的内存池 */
53
- ngx_uint_t alloc_times ; /* 当前已经从内存池中申请过多少次内存 */
54
- ngx_int_t ngx_waf ; /* 是否启用本模块 */
55
- ngx_str_t ngx_waf_rule_path ; /* 配置文件所在目录 */
56
- ngx_int_t ngx_waf_cc_deny ; /* 是否启用 CC 防御 */
57
- ngx_int_t ngx_waf_cc_deny_limit ; /* CC 防御的限制频率 */
58
- ngx_int_t ngx_waf_cc_deny_duration ; /* CC 防御的拉黑时长 */
59
- ngx_array_t * block_ipv4 ;
60
- ngx_array_t * block_url ;
61
- ngx_array_t * block_args ;
62
- ngx_array_t * block_ua ;
63
- ngx_array_t * block_referer ;
64
- ngx_array_t * white_ipv4 ;
65
- ngx_array_t * white_url ;
66
- ngx_array_t * white_referer ;
67
- hash_table_item_int_ulong_t * ipv4_times ;
68
-
69
- ngx_pool_t * ngx_pool_old ;
70
- hash_table_item_int_ulong_t * ipv4_times_old ;
71
- hash_table_item_int_ulong_t * ipv4_times_old_cur ;
72
- ngx_int_t free_hash_table_step ;
51
+ ngx_log_t * ngx_log ; /* 记录内存池在进行操作时的错误日志 */
52
+ ngx_pool_t * ngx_pool ; /* 模块所使用的内存池 */
53
+ ngx_uint_t alloc_times ; /* 当前已经从内存池中申请过多少次内存 */
54
+ ngx_int_t ngx_waf ; /* 是否启用本模块 */
55
+ ngx_str_t ngx_waf_rule_path ; /* 配置文件所在目录 */
56
+ ngx_int_t ngx_waf_cc_deny ; /* 是否启用 CC 防御 */
57
+ ngx_int_t ngx_waf_cc_deny_limit ; /* CC 防御的限制频率 */
58
+ ngx_int_t ngx_waf_cc_deny_duration ; /* CC 防御的拉黑时长 */
59
+ ngx_array_t * block_ipv4 ; /* IPV4 黑名单 */
60
+ ngx_array_t * block_url ; /* URL 黑名单 */
61
+ ngx_array_t * block_args ; /* args 黑名单 */
62
+ ngx_array_t * block_ua ; /* user-agent 黑名单 */
63
+ ngx_array_t * block_referer ; /* Referer 黑名单 */
64
+ ngx_array_t * white_ipv4 ; /* IPV4 白名单 */
65
+ ngx_array_t * white_url ; /* URL 白名单 */
66
+ ngx_array_t * white_referer ; /* Referer 白名单 */
67
+ hash_table_item_int_ulong_t * ipv4_times ; /* IPV4 访问频率统计表 */
68
+
69
+ ngx_pool_t * ngx_pool_old ; /* 执行函数 free_hash_table 时用于备份旧的内存池 */
70
+ hash_table_item_int_ulong_t * ipv4_times_old ; /* 执行函数 free_hash_table 时用于备份旧的 IPV4 访问频率统计表 */
71
+ hash_table_item_int_ulong_t * ipv4_times_old_cur ; /* 执行函数 free_hash_table 时用于记录当前处理到旧的 IPV4 访问频率统计表的哪一项 */
72
+ ngx_int_t free_hash_table_step ; /* 记录 free_hash_table 执行到哪一阶段 */
73
73
}ngx_http_waf_srv_conf_t ;
74
74
75
75
typedef struct {
76
- size_t prefix ;
77
- size_t suffix ;
76
+ size_t prefix ; /* 相当于 192.168.1.0/24 中的 192.168.1.0 的整数形式 */
77
+ size_t suffix ; /* 相当于 192.168.1.0/24 中的 24 的整数形式 */
78
78
}ipv4_t ;
79
79
80
+
80
81
static char * ngx_http_waf_conf (ngx_conf_t * cf , ngx_command_t * cmd , void * conf );
81
82
82
83
0 commit comments