Прокси для проверки 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/.