Libmodsecurity is the one component of the ModSecurity v3 project

Libmodsecurity is the one component of the ModSecurity v3 project

The collection codebase serves as an interface to ModSecurity Connectors taking-in website traffic and using traditional ModSecurity control. Typically, it provides the capability to load/interpret principles written in the ModSecurity SecRules format thereby applying these to HTTP content given by the application via Connectors.

To bring about this records, please utilize the doxygen electricity making use of the offered setup document, aˆ?doxygen

  • All Apache dependencies have-been got rid of
  • Higher abilities
  • Additional features
  • New buildings

Libmodsecurity try foot fetish dating site a complete rewrite for the ModSecurity system. Whenever it was initially designed the ModSecurity task going as just an Apache module. As time passes your panels has become lengthened, considering prominent requirements, to aid other platforms including (however restricted to) Nginx and IIS. Being look after the raising demand for added program help, it has got became necessary to take away the Apache dependencies underlying this task, making it much more platform independent.

As a result of this purpose we rearchitected Libmodsecurity so that it has stopped being influenced by the Apache web machine (both at collection and during runtime). One side-effect within this is that across all programs consumers can expect increasing overall performance. Furthermore, there is taken this possibility to place the foundation for most additional features that consumers were long desire. For example our company is seeking to natively service auditlogs inside JSON style, alongside many more usability in future forms.

The ‘ModSecurity’ branch not any longer offers the conventional module logic (for Nginx, Apache, and IIS) that contains typically already been manufactured altogether. Rather, this part just offers the collection portion (libmodsecurity) for this project. This library was taken in what we called ‘Connectors’ these connectors will interface together with your webserver and offer the library with one common style so it recognizes. Each of these connectors is managed as a separate GitHub task. For-instance, the Nginx connector comes by the ModSecurity-nginx project (

Maintaining these connections split up enables each job for various production series, dilemmas and developing trees. Furthermore, it indicates that when you put in ModSecurity v3 you merely see just what you will want, no bonuses you will not be using.

Before beginning the collection process, be sure that you have the ability to the dependencies positioned. Read the subsection aˆ?Dependenciesaˆ? for further facts.

Following the collection ensure there aren’t any issues on your own build/platform. We strongly recommend the use of the machine assessments and regression examinations. These examination utilities are found beneath the subfolder aˆ?tests’.

As a dynamic library, don’t forget that libmodsecurity must be installed to a spot (folder) in which you OS should be interested in vibrant libraries.

This library is written in C++ using the C++11 standards. Additionally, it makes use of Flex and Yacc to create the aˆ?Sec regulations Languageaˆ? parser. Various other, mandatory dependencies integrate YAJL, as ModSecurity makes use of JSON for generating logs and its particular testing structure, libpcre (not even necessary) for running normal expressions in SecRules, and libXML2 (not yet compulsory) used for parsing XML needs.

Others dependencies include pertaining to workers specified within SecRules or arrangement directives that will not be necessary for collection. A short directory of such dependencies can be as follows:

To build this paperwork, kindly make use of the doxygen energy making use of the supplied setup document, aˆ?doxygen

  • libinjection is needed for driver and
  • curl required the directive SecRemoteRules.

If those libraries tend to be lost ModSecurity are compiled minus the assistance for the user therefore the configuration directive SecRemoteRules.

The collection documents is created within the code in Doxygen format. cfgaˆ?, set making use of “doc/” subfolder. This may build HTML formatted documentation including practices advice.