pull/60/head
有安科技 2024-04-16 19:11:11 +08:00
parent 022c3cb861
commit cfb13f6b99
6 changed files with 59 additions and 28 deletions

View File

@ -1,4 +1,15 @@
## [4.0.1](https://github.com/Safe3/uuWAF/compare/v4.0.1...v3.3.3) (2024-03-27)
## [4.1.0](https://github.com/Safe3/uuWAF/compare/v4.1.0...v4.0.1) (2024-04-16)
### 功能更新
* 插件功能新增SSL处理阶段并将原各阶段函数细分为pre、post前后两个小阶段
* 新增日志刷新按钮
* 优化固件升级判断逻辑
## [4.0.1](https://github.com/Safe3/uuWAF/compare/v4.0.1...v3.3.3) (2024-04-10)
### 功能更新

View File

@ -417,7 +417,7 @@ return false
### 插件编写
一个标准的插件包含以下几个部分,每个部分若无功能实现可省略。
一个标准的插件包含以下几个部分,每个部分若无功能实现可省略每个大阶段分为pre和post前后两个小阶段分别代表南墙逻辑处理执行前和南墙逻辑处理执行后。南墙v4.1.0之前的版本没有小阶段请使用req_filter、resp_header_filter、resp_body_filter、log
```lua
local _M = {
@ -425,23 +425,53 @@ local _M = {
name = "kafka-logger" -- 插件名称
}
-- 请求阶段过滤函数
function _M.req_filter(waf)
-- ssl阶段前过滤
function _M.ssl_pre_filter(waf)
end
-- 返回header阶段过滤函数
function _M.resp_header_filter(waf)
-- ssl阶段后过滤
function _M.ssl_post_filter(waf)
end
-- 返回body阶段过滤函数
function _M.resp_body_filter(waf)
-- 请求阶段前过滤
function _M.req_pre_filter(waf)
end
-- 日志记录阶段执行函数
function _M.log(waf)
-- 请求阶段后过滤
function _M.req_post_filter(waf)
end
-- 返回header阶段前过滤
function _M.resp_header_pre_filter(waf)
end
-- 返回header阶段后过滤
function _M.resp_header_post_filter(waf)
end
-- 返回body阶段前过滤
function _M.resp_body_pre_filter(waf)
end
-- 返回body阶段后过滤
function _M.resp_body_post_filter(waf)
end
-- 日志记录阶段前过滤
function _M.log_pre_filter(waf)
end
-- 日志记录阶段后过滤
function _M.log_post_filter(waf)
end
@ -450,6 +480,10 @@ return _M
- #### SSL阶段过滤函数
- 该阶段用于获取客户端请求的域名和设置SSL证书waf变量的值为nil。
- #### 请求阶段过滤函数
- 该阶段用于过滤客户端发送的请求数据waf变量同规则变量一致可自行实现该函数功能。
@ -492,11 +526,11 @@ return _M
有时为了在各个执行函数间共享同一个数据可以通过给waf.ctx赋值来实现
```lua
function _M.resp_body_filter(waf)
function _M.resp_body_pre_filter(waf)
waf.ctx = "share"
end
function _M.log(waf)
function _M.log_pre_filter(waf)
log.errLog(waf.ctx)
end
```

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
4.0.1
4.1.0

View File

@ -11,20 +11,6 @@ local _M = {
name = "kafka-logger"
}
--[[
function _M.req_filter(waf)
end
function _M.resp_header_filter(waf)
end
function _M.resp_body_filter(waf)
end
--]]
local function kafkaLog(_, brokerList, info)
local kp = producer:new(brokerList, { producer_type = "async" })
local key = "key"
@ -35,7 +21,7 @@ local function kafkaLog(_, brokerList, info)
end
end
function _M.log(waf)
function _M.log_post_filter(waf)
local brokerList = {
{
host = "127.0.0.1",