Sobre o projeto

Este repositório contém o libmodsecurity, o componente de biblioteca do ModSecurity v3. Ele carrega e interpreta regras no formato SecRules do ModSecurity e aplica o processamento do ModSecurity ao conteúdo HTTP fornecido pelos conectores. A arquitetura separa a biblioteca principal dos conectores para Apache, Nginx, IIS e outros, que são mantidos como projetos separados. A biblioteca é escrita em C++17 e fornece interfaces C e C++, com exemplos para criar conjuntos de regras e processar as fases de conexão, URI, requisição e resposta. Ela suporta monitoramento de tráfego HTTP, registro e verificações de intervenção. As capacidades relacionadas a regras incluem operadores de expressão regular e detecção opcional de XSS e injeção de SQL por meio do libinjection; dependências opcionais podem adicionar regras remotas, armazenamento persistente, scripts Lua, processamento de XML e suporte a bancos de dados MaxMind. A árvore de código inclui testes unitários e de regressão, um conjunto de testes de conformidade com SecRules, documentação Doxygen e uma ferramenta de benchmarking. O ModSecurity v2 para Apache continua disponível em um branch de manutenção separado.