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)?
27
27
@@ -37,7 +37,7 @@ As a result of this goal we have rearchitected Libmodsecurity such that it is no
37
37
38
38
### It is no longer just a module.
39
39
40
-
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/owasp-modsecurity/ModSecurity-nginx).
40
+
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 (../../../ModSecurity-nginx).
41
41
42
42
Keeping these connectors separated allows each project to 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.
43
43
@@ -53,8 +53,6 @@ regression tests. These test utilities are located under the subfolder ‘tests
53
53
54
54
As a dynamic library, don’t forget that libmodsecurity must be installed to a location (folder) where you OS will be looking for dynamic libraries.
55
55
56
-
57
-
58
56
### Unix (Linux, MacOS, FreeBSD, …)
59
57
60
58
On unix the project uses autotools to help the compilation process.
@@ -67,23 +65,33 @@ $ sudo make install
67
65
```
68
66
69
67
Details on distribution specific builds can be found in our Wiki:
Windows build information can be found [here](build/win32/README.md).
75
73
76
74
## Dependencies
77
75
78
-
This library is written in C++ using the C++17 standards. It also uses Flex
79
-
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.
76
+
This library is written in C++ using the C++17 standard.
77
+
78
+
The following dependencies are used to build libModSecurity:
79
+
80
+
* Flex and Yacc to produce the “Sec Rules Language” parser.
81
+
* YAJL, as ModSecurity uses JSON for producing logs and its testing framework.
82
+
* PCRE or PCRE2 for processing regular expressions in SecRules.
83
+
* libinjection for the operators [@detectXSS](../../wiki/Reference-Manual-(v3.x)#detectxss) and [@detectSQL](../../wiki/Reference-Manual-(v3.x)#detectsqli).
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:
86
+
All others dependencies are related to operators specified within SecRules or configuration directives and may not be required for compilation. If those libraries are missing ModSecurity will be compiled without the support for the associated operator or configuration directive.
82
87
83
-
* libinjection is needed for the operator @detectXSS and @detectSQL
84
-
* curl is needed for the directive SecRemoteRules.
88
+
A short list of such dependencies is as follows:
85
89
86
-
If those libraries are missing ModSecurity will be compiled without the support for the operator @detectXSS and the configuration directive SecRemoteRules.
90
+
* libXML2 which for parsing XML requests.
91
+
* curl is needed for the directive [SecRemoteRules](../../wiki/Reference-Manual-(v3.x)#user-content-SecRemoteRules).
92
+
* LUA is needed for the directive [SecRuleScript](../../wiki/Reference-Manual-(v3.x)#secrulescript).
93
+
* GeoIP/MaxMind to perform geolocation lookups using operator [geoLookup](../../wiki/Reference-Manual-(v3.x)%29#geolookup)
94
+
* ssdeep is needed for the operator [fuzzyHash](../../wiki/Reference-Manual-(v3.x)%29#fuzzyhash).
87
95
88
96
# Library documentation
89
97
@@ -273,4 +281,4 @@ if there is anything we can do to facilitate your work as a packager.
273
281
274
282
## Sponsor Note
275
283
276
-
Development of ModSecurity is sponsored by Trustwave. Sponsorship will end July 1, 2024. Additional information can be found herehttps://www.trustwave.com/en-us/resources/security-resources/software-updates/end-of-sale-and-trustwave-support-for-modsecurity-web-application-firewall/
284
+
Development of ModSecurity is sponsored by Trustwave. Sponsorship will end July 1, 2024. Additional information can be found [here](https://www.trustwave.com/en-us/resources/security-resources/software-updates/end-of-sale-and-trustwave-support-for-modsecurity-web-application-firewall/).
0 commit comments