Estou tentando processar REQUEST_BODY de solicitação da web, que tem Content-Type: text / xml e algum XML dentro dela.
Digamos que eu tenha o seguinte pedido:
curl -v -d
"
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<value>
<struct>
<member>
<name>SomeName</name>
<value>SomeValue</value>
</member>
</struct>
</value>
</methodResponse>
"
-H "Content-Type:text/xml" http://gryzli.info/some_url.php
O que eu preciso é poder combinar o REQUEST_BODY com "SomeName" ou "SomeValue" como uma string de texto simples.
Já tentei as seguintes coisas:
1. Tentando combinar na fase 2, com as seguintes palavras-chave:
SecRule REQUEST_BODY "SomeValue" "phase:2, ....." - No success
SecRule FULL_REQUEST "SomeValue" "phase:2, ....." - No success
SecRule ARGS "SomeValue" "phase:2, ....." - No success
2. Além das regras acima, tentei ativar essas regras em diferentes combinações:
SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:requestBodyProcessor=MULTIPART"
OR
SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:requestBodyProcessor=URLENCODED"
OR
SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:forceRequestBodyVariable=On"
Novamente - sem sucesso .
A verdadeira questão:
Alguém sabe como corresponder uma string de texto simples dentro de REQUEST_BODY quando a solicitação do meu cliente é de Content-Type: text / xml?
Também prefiro NÃO usar o mecanismo XML, que pode analisar meu XML, porque espero uma grande penalidade de desempenho ao fazer isso.