mod_security – Come elaborare text / xml request_body

Sto provando a elaborare REQUEST_BODY di richiesta web, che contiene Content-Type: text / xml e alcuni XML all'interno di esso. Lasciate che ho la seguente richiesta:

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 

Quello che mi occorre è poter abbinare il REQUEST_BODY a "SomeName" o "SomeValue" come string di text semplice.

Ho già provato le seguenti cose:

1. Tentare di corrispondere alla fase 2, con le seguenti parole chiave:

 SecRule REQUEST_BODY "SomeValue" "phase:2, ....." - No success SecRule FULL_REQUEST "SomeValue" "phase:2, ....." - No success SecRule ARGS "SomeValue" "phase:2, ....." - No success 

2. Oltre alle regole precedenti, ho cercato di triggersre queste regole in combinazioni diverse:

 SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:requestBodyProcessor=MULTIPART" 

O

 SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:requestBodyProcessor=URLENCODED" 

O

 SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1,id:100000,t:lowercase,nolog,pass, ctl:forceRequestBodyVariable=On" 

Ancora una volta – senza successo .

La vera domanda:

Qualcuno sa come abbinare una string di text semplice all'interno di REQUEST_BODY quando la richiesta del mio cliente è di Content-Type: text / xml?

Inoltre preferisco NON utilizzare il motore XML, che può analizzare il mio XML, perché mi aspetto una pena di grande rendimento per farlo.

  • mod_unique_id: Imansible trovare l'indirizzo IPv4 di FQDN nonostante l'impostazione etc / hosts e Apache ServerName
  • mod_security - Limiti PCRE superati
  • SecAuditLogParts non funziona: mod_security mantiene il corpo di risposta di logging
  • modsecurity apache mod-security.conf mancante
  • Come posso escludere mod_security da sotto-directory su Amazon EC2 con LAMP?
  • Perché la modecurity richiede Content-Length nelle richieste POST?
  • Modifica della logging di ModSecurity su base per transactions
  • Come get mod_security per registrare tutti i dati POST?
  • One Solution collect form web for “mod_security – Come elaborare text / xml request_body”

    Infine, ho trovato la risposta per la corrispondenza di un valore chiaro in XML tipo di contenuto, ecco l'esempio:

     SecRequestBodyAccess On SecRule REQUEST_HEADERS:Content-Type "text/xml" "phase:1, nolog,pass,ctl:requestBodyProcessor=URLENCODED, id:2222" SecRule REQUEST_BODY "some_bad_string" "phase:2, t:none, deny,msg:'Matched some_bad_string', status:500,auditlog, id:3333" 

    Ecco cosa fa:

    1. Nella fase "fase: 1" (fase REQUEST_HEADERS), corrisponde se il tipo di contenuto è "text / xml:". Se sì, quindi cambiare il motore di elaborazione del corpo in " URLENCODED "

    2. Nella fase "fase: 2" (fase REQUEST_BODY), corrisponde alla string in chiaro " some_bad_string " e blocca la richiesta con codice di stato: 500.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.