ModSecurity 2.9 能够执行审查吗? (更改响应正文)

问题描述 投票:0回答:1

我想知道 ModSecurity 是否能够进行审查。

例如应用程序的响应是:

{“错误”:空, “id”:“1”, "结果": [ { "名称": "苍蝇", "类别": "昆虫" }, { "名称": "蜘蛛", "类别": "蜘蛛"} ] }

我们希望将以下响应发送给客户端,不带“蜘蛛”部分:

{“错误”:空, “id”:“1”, "结果": [ { "名称": "飞行", "类": "昆虫" } ] }

我们需要这个,因为应用程序的编辑器无法使用请求中的某些过滤器来执行此类响应。

我找不到任何信息来知道这是否可能,如果可能的话如何做到。

所以我尝试过类似的规则......


SecRule RESPONSE_BODY "@rx .*" "id:100,phase:4,exec:/usr/local/bin/change-response-body.lua,allow"

...以及一个change-response-body.lua脚本,例如:


#!/usr/bin/lua
function main()

local respBody = m.getvar("RESPONSE_BODY")

-- some parsing on respBody

respBody = "just a try"

m.setenv("RESPONSE_BODY", respBody)
m.setvar("RESPONSE_BODY", respBody )

return 1
end

而且它不起作用。

你能帮我一下吗?

提前致谢。

旋转

apache mod-security
1个回答
0
投票

可以通过将操作 @rsub 应用于 STREAM_OUTPUT_BODY 变量来完成此操作。为此,您需要将 ModSecurity 指令

SecStreamOutBodyInspection
SecContentInjection
设置为
On
(这可能会对性能产生负面影响,请阅读文档)。

© www.soinside.com 2019 - 2024. All rights reserved.