You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### What is the difference between this project and the old ModSecurity (v2.x.x)?
28
28
29
-
* All Apache dependences have been removed
29
+
* All Apache dependencies have been removed
30
30
* Higher performance
31
31
* New features
32
32
* New architecture
33
33
34
34
Libmodsecurity is a complete rewrite of the ModSecurity platform. When it was first devised the ModSecurity project started as just an Apache module. Over time the project has been extended, due to popular demand, to support other platforms including (but not limited to) Nginx and IIS. In order to provide for the growing demand for additional platform support, it has became necessary to remove the Apache dependencies underlying this project, making it more platform independent.
35
35
36
-
As a result of this goal we have rearchitected Libmodsecurity such that it is no longer dependent on the Apache web server (both at compilation and during runtime). One side effect of this is that across all platforms users can expect increased performance. Additionally, we have taken this opprotunity to lay the groundwork for some new features that users have been long seeking. For example we are looking to nativly support auditlogs in the JSON format, along with a host of other functionality in future versions.
36
+
As a result of this goal we have rearchitected Libmodsecurity such that it is no longer dependent on the Apache web server (both at compilation and during runtime). One side effect of this is that across all platforms users can expect increased performance. Additionally, we have taken this opportunity to lay the groundwork for some new features that users have been long seeking. For example we are looking to natively support auditlogs in the JSON format, along with a host of other functionality in future versions.
37
37
38
38
39
39
### It is no longer just a module.
40
40
41
-
The 'ModSecurity' branch no longer contains the traditional module logic (for Nginx, Apache, and IIS) that has traditionally been packaged all together. Instead, this branch only contains the library portion (libmodsecurity) for this project. This library is consumed by what we have termed 'Connectors' these connectors will interface with your webserver and provide the library with a common format that it undersands. Each of these connectors is maintained as a seperate GitHub project. For instance, the Nginx connector is supplied by the ModSecurity-nginx project (https://github.com/SpiderLabs/ModSecurity-nginx).
41
+
The 'ModSecurity' branch no longer contains the traditional module logic (for Nginx, Apache, and IIS) that has traditionally been packaged all together. Instead, this branch only contains the library portion (libmodsecurity) for this project. This library is consumed by what we have termed 'Connectors' these connectors will interface with your webserver and provide the library with a common format that it understands. Each of these connectors is maintained as a separate GitHub project. For instance, the Nginx connector is supplied by the ModSecurity-nginx project (https://github.com/SpiderLabs/ModSecurity-nginx).
42
42
43
-
Keeping these connectors seperated allows each project to be have different release cycles, issues and development trees. Addtionally, it means that when you install ModSecurity v3 you only get exactly what you need, no extras you won't be using.
43
+
Keeping these connectors separated allows each project to be have different release cycles, issues and development trees. Additionally, it means that when you install ModSecurity v3 you only get exactly what you need, no extras you won't be using.
44
44
45
45
# Compilation
46
46
@@ -78,7 +78,7 @@ Windows build is not ready yet.
78
78
## Dependencies
79
79
80
80
This library is written in C++ using the C++11 standards. It also uses Flex
81
-
and Yacc to produce the “Sec Rules Language” parser. Other, manditory dependencies include YAJL, as ModSecurity uses JSON for producing logs and its testing framework, libpcre (not yet manditory) for processing regular expressions in SecRules, and libXML2 (not yet manditory) which is used for parsing XML requests.
81
+
and Yacc to produce the “Sec Rules Language” parser. Other, mandatory dependencies include YAJL, as ModSecurity uses JSON for producing logs and its testing framework, libpcre (not yet mandatory) for processing regular expressions in SecRules, and libXML2 (not yet mandatory) which is used for parsing XML requests.
82
82
83
83
All others dependencies are related to operators specified within SecRules or configuration directives and may not be required for compilation. A short list of such dependencies is as follows:
84
84
@@ -97,7 +97,7 @@ The library provides a C++ and C interface. Some resources are currently only
97
97
available via the C++ interface, for instance, the capability to create custom logging
98
98
mechanism (see the regression test to check for how those logging mechanism works).
99
99
The objective is to have both APIs (C, C++) providing the same functionality,
100
-
if you find an aspect of the API that is missing via a perticular interface, please open an issue.
100
+
if you find an aspect of the API that is missing via a particular interface, please open an issue.
101
101
102
102
Inside the subfolder examples, there are simple examples on how to use the API.
103
103
Below some are illustrated:
@@ -199,7 +199,7 @@ A TODO list is also available as part of the Doxygen documentation.
199
199
200
200
Along with the manual testing, we strongly recommend you to use the our
201
201
regression tests and unit tests. If you have implemented an operator, don’t
202
-
forget to create unit tests for it. If you impliment anything else, it is encouraged that you develop complimentary regression tests for it.
202
+
forget to create unit tests for it. If you implement anything else, it is encouraged that you develop complimentary regression tests for it.
203
203
204
204
The regression test and unit test utilities are native and do not demand any
205
205
external tool or script, although you need to fetch the test cases from other
@@ -222,7 +222,7 @@ Before start the debugging process, make sure of where your bug is. The problem
222
222
could be on your connector or in libmodsecurity. In order to identify where the
223
223
bug is, it is recommended that you develop a regression test that mimics the
224
224
scenario where the bug is happening. If the bug is reproducible with the
225
-
regression-test utility, then it will be far simpliar to debug and ensure that it never occurs again. On Linux it is
225
+
regression-test utility, then it will be far simpler to debug and ensure that it never occurs again. On Linux it is
226
226
recommended that anyone undertaking debugging utilize gdb and/or valgrind as needed.
227
227
228
228
During the configuration/compilation time, you may want to disable the compiler
@@ -271,7 +271,3 @@ The libModSecurity design allows the integration with bindings. There is an effo
271
271
272
272
Having our packages in distros on time is a desire that we have, so let us know
273
273
if there is anything we can do to facilitate your work as a packager.
0 commit comments