Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Proxy 使用xsd验证xml的代理_Proxy_Reverse Proxy_Mod Proxy_Mod Security_Mod Security2 - Fatal编程技术网

Proxy 使用xsd验证xml的代理

Proxy 使用xsd验证xml的代理,proxy,reverse-proxy,mod-proxy,mod-security,mod-security2,Proxy,Reverse Proxy,Mod Proxy,Mod Security,Mod Security2,我已经搜索了一段时间,寻找可以充当代理的东西,我可以向它提供XSD来验证HTTP通信请求体中的xml内容 有人知道Windows或Linux上是否存在这样的东西吗? 我签出了ModSecurity,但我对它有点迷茫-我相信SecRule XML可能能够做到这一点,但我找不到如何根据多个xsd文件检查XML,看看它是否通过了任何特定的文件 validateSchema Description: This operator requires the request body to be proces

我已经搜索了一段时间,寻找可以充当代理的东西,我可以向它提供XSD来验证HTTP通信请求体中的xml内容

有人知道Windows或Linux上是否存在这样的东西吗? 我签出了ModSecurity,但我对它有点迷茫-我相信SecRule XML可能能够做到这一点,但我找不到如何根据多个xsd文件检查XML,看看它是否通过了任何特定的文件

validateSchema
Description: This operator requires the request body to be processed as XML.
Example:
SecDefaultAction log,deny,status:403,phase:2
SecRule REQUEST_HEADERS:Content-Type ^text/xml$ \
phase:1,t:lowercase,nolog,pass,ctl:requestBodyProcessor=XML
SecRule REQBODY_PROCESSOR "!^XML$" nolog,pass,skip:1
SecRule XML "@validateSchema /path/to/apache2/conf/xml.xsd"
This operator requires request body to be processed as XML.

我认为有一种方法可以创建链式规则评估,它允许在满足任何规则时通过消息,但在不满足任何规则时通过拒绝消息


谢谢大家!

ModSecurity中的XML/XSD检查是可行的,但它没有被很多人使用(与ModSec的核心功能不同),因此如果您发现了粗糙的边缘,我不会感到惊讶。 因此,请谨慎使用并考虑其他选择(->mod_lua,使用XML库,等等)

是什么阻止你检查它们

SecRule XML "@validateSchema /path/to/apache2/conf/xml.xsd"  "phase:2,id:1,log,deny"
SecRule XML "@validateSchema /path/to/apache2/conf/xml2.xsd" "phase:2,id:2,log,deny"
如果这样做,还可以根据上下文对规则进行分支和跳过。与Header-X类似,然后通过id:1传递,如果Header-Not-X,则通过id:2传递


如果您缺乏ModSecurity知识来实现这一点,那么您可能需要购买ModSec手册或查看上的教程。

有没有办法将请求正文传递给lua脚本?然后我可以使用命令行和第三方库进行验证!但我在访问请求主体时遇到问题!