Прокси для проверки xml с xsd

Некоторое время я искал что-то, что могло бы выступать в роли прокси-сервера, чтобы я мог передать его XSD для проверки содержимого XML в теле запроса HTTP-трафика.

Кто-нибудь знает, существует ли такая вещь в Windows или Linux? Я проверил ModSecurity, но я немного растерялся - я полагаю, что SecRule XML, возможно, сможет это сделать, но я не могу найти способ проверить xml на наличие нескольких файлов xsd, чтобы проверить, прошел ли он какой-либо конкретный файл?

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.

https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual-(v2.x)#validateSchema

Я думаю, что есть какой-то способ создания оценки правил, связанных с цепочкой, и он позволяет отправлять сообщения через IF, если любое из правил выполнено, но запрещает сообщение, когда ни одно из них не выполняется.

Спасибо!

1 ответ

Решение

Проверка XML / XSD в ModSecurity работает, но она не используется многими людьми (в отличие от основной функциональности 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 или ознакомиться с учебными пособиями по адресу https://netnea.com/.

Другие вопросы по тегам