lua-resty-coraza
基于 FFI 的 Libcoraza LuaJIT 绑定
$ opm get potats0/lua-resty-coraza
lua-resty-coraza
[!测试](https://github.com/potats0/lua-resty-coraza/actions/workflows/CI.yml)
名称
用于 modsecurity Web 应用防火墙的 libcoraza 的 Lua 实现。
依赖
1. libcoraza-nginx
克隆仓库:
git clone https://github.com/potats0/coraza.git
构建源代码 && 安装
cd coraza ./build.sh ./configure make sudo make install
libcoraza.so
将安装到/usr/local/lib
2. Coreruleset
coreruleset 是一个开源 WAF 规则集。
克隆仓库:
git clone --recurse-submodules https://github.com/coreruleset/coreruleset
3. lua-resty-coraza
opm get potats0/lua-resty-coraza
概述
init_worker_by_lua_block{
coraza = require "resty.coraza"
waf = coraza.create_waf()
-- add rule from file
coraza.rules_add_file(waf, "%s/t/coraza.conf")
-- your corerule set, add rule from directive
coraza.rules_add(waf, "Include %s/t/coreruleset/crs-setup.conf.example")
coraza.rules_add(waf, "Include %s/t/coreruleset/rules/*.conf")
}
location /t {
access_by_lua_block {
coraza.do_create_transaction(waf)
coraza.do_access_filter()
coraza.do_interrupt()
}
content_by_lua_block {
ngx.say("passed")
}
header_filter_by_lua_block{
coraza.do_header_filter()
coraza.do_interrupt()
}
body_filter_by_lua_block{
coraza.do_body_filter()
}
log_by_lua_block{
coraza.do_log()
coraza.do_free_transaction()
}
}
如果您需要更多调试日志,请开启 nginx 的调试模式。
error_log logs/error.log debug;
待办事项
检测到事件 =back 时阻止响应
POD 错误
注意!以上文档存在一些编码错误,解释如下:
- 大约在 125 行
-
=over 未关闭 =back
作者
potatso
许可证
apache2
依赖项
luajit
版本
-
potats0/lua-resty-coraza 1.0.3基于 FFI 的 Libcoraza LuaJIT 绑定 2023-08-08 06:05:46
-
potats0/lua-resty-coraza 1.0.2基于 FFI 的 Libcoraza LuaJIT 绑定 2023-07-13 17:58:32
-
potats0/lua-resty-coraza 1.0.1基于 FFI 的 Libcoraza LuaJIT 绑定 2023-07-07 07:07:08
-
potats0/lua-resty-coraza 1.0.0基于 FFI 的 Libcoraza LuaJIT 绑定 2023-07-07 06:40:26