diff --git a/doc/Reference_Manual.html b/doc/Reference_Manual.html
index 424dffa4..cc30b988 100644
--- a/doc/Reference_Manual.html
+++ b/doc/Reference_Manual.html
@@ -55,7 +55,7 @@ type="text/css">
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
- var wgCurRevisionId = 410;
+ var wgCurRevisionId = 430;
var wgVersion = "1.15.1";
var wgEnableAPI = true;
var wgEnableWriteAPI = true;
@@ -270,61 +270,67 @@ class="tocnumber">6.32 SecPdfProtectTimeout<
class="tocnumber">6.33 SecPdfProtectTokenName
6.34 SecReadStateLimit
+6.35 SecWriteStateLimit
6.35 SecRequestBodyAccess
+class="tocnumber">6.36 SecRequestBodyAccess
6.36 SecRequestBodyInMemoryLimit
+class="tocnumber">6.37 SecRequestBodyInMemoryLimit
6.37 SecRequestBodyLimit
+class="tocnumber">6.38 SecRequestBodyLimit
6.38 SecRequestBodyNoFilesLimit
+class="tocnumber">6.39 SecRequestBodyNoFilesLimit
6.39 SecRequestBodyLimitAction
+class="tocnumber">6.40 SecRequestBodyLimitAction
6.40 SecResponseBodyLimit
+class="tocnumber">6.41 SecResponseBodyLimit
6.41 SecResponseBodyLimitAction
+class="tocnumber">6.42 SecResponseBodyLimitAction
6.42 SecResponseBodyMimeType
+class="tocnumber">6.43 SecResponseBodyMimeType
6.43 SecResponseBodyMimeTypesClear
+class="tocnumber">6.44 SecResponseBodyMimeTypesClear
6.44 SecResponseBodyAccess
-6.45
+class="tocnumber">6.45 SecResponseBodyAccess
+6.46
SecRule
6.46 SecRuleInheritance
-6.47
+class="tocnumber">6.47 SecRuleInheritance
+6.48
SecRuleEngine
6.48 SecRuleRemoveById
+class="tocnumber">6.49 SecRuleRemoveById
6.49 SecRuleRemoveByMsg
+class="tocnumber">6.50 SecRuleRemoveByMsg
6.50 SecRuleRemoveByTag
-6.51
+class="tocnumber">6.51 SecRuleRemoveByTag
+6.52
SecRuleScript
6.52 SecRuleUpdateActionById
+class="tocnumber">6.53 SecRuleUpdateActionById
6.53 SecRuleUpdateTargetById
+class="tocnumber">6.54 SecRuleUpdateTargetById
6.54 SecServerSignature
+class="tocnumber">6.55 SecServerSignature
6.55 SecStreamInBodyInspection
+class="tocnumber">6.56 SecStreamInBodyInspection
6.56 SecStreamOutBodyInspection
-6.57
+class="tocnumber">6.57 SecStreamOutBodyInspection
+6.58
SecTmpDir
-6.58
+6.59 SecUnicodeMapFile
+6.60 SecUnicodeCodePage
+6.61
SecUploadDir
6.59 SecUploadFileLimit
+class="tocnumber">6.62 SecUploadFileLimit
6.60 SecUploadFileMode
+class="tocnumber">6.63 SecUploadFileMode
6.61 SecUploadKeepFiles
-6.62
+class="tocnumber">6.64 SecUploadKeepFiles
+6.65
SecWebAppId
@@ -1897,6 +1903,17 @@ href="http://blog.spiderlabs.com/2010/11/advanced-topic-of-the-week-mitigating-s
title="http://blog.spiderlabs.com/2010/11/advanced-topic-of-the-week-mitigating-slow-http-dos-attacks.html"
rel="nofollow">http://blog.spiderlabs.com/2010/11/advanced-topic-of-the-week-mitigating-slow-http-dos-attacks.html
+ SecWriteStateLimit
+Description: Establishes a per-IP address limit of how many
+connections are allowed to be in SERVER_BUSY_WRITE state.
+
Syntax: SecWriteStateLimit LIMIT
+
Example Usage: SecWriteStateLimit 50
+
Scope: Main
+
Version: 2.6.0
+
Default: 0 (no limit)
+
This measure is effective against Slow DoS request body attacks.
+
SecRequestBodyAccess
Description: Configures whether request bodies will be
@@ -2415,39 +2432,37 @@ insert.
SecStreamInBodyInspection
Description: Configures the ability to use stream inspection
-for inbound request data.
+for inbound request data in a re-allocable buffer. For security reasons
+we are still buffering the stream.
Syntax: SecStreamInBodyInspection On|Off
Example Usage: SecStreamInBodyInspection On
Scope: Any
Version: 2.6.0
Default: Off
This feature enables the creation of the STREAM_INPUT_BODY
-variable and is useful in a prequalification ruleset scenario against a
-large list of strings.
+variable and is useful for data modification or to match data in raw
+data for any content-types.
-- Note
- This directive provides stream access to
+
- Note
- This directive provides full access to
REQUEST_BODY payload data. It does not include REQUEST_URI or
-REQUEST_HEADER data.
+REQUEST_HEADER data. Also it provides data to all kind of content types,
+ different than REQUEST_BODY.
SecStreamOutBodyInspection
Description: Configures the ability to use stream inspection
-for outbound request data.
+for outbound request data in a re-allocable buffer. For security
+reasons we are still buffering the stream.
Syntax: SecStreamOutBodyInspection On|Off
Example Usage: SecStreamOutBodyInspection On
Scope: Any
Version: 2.6.0
Default: Off
This feature enables the creation of the STREAM_OUTPUT_BODY
-variable and is useful in two main scenarios:
+variable and is useful when you need to do data modification into
+response body.
-- A prequalification ruleset scenario against a large list of
-strings. This helps with performance as buffering the RESPONSE_BODY
-data is slow.
-
- In situations where the response body must be streamed to the
-client (buffering breaks the app).
-
-- Note
- This directive provides stream access to
+
- Note
- This directive provides access to
RESPONSE_BODY payload data. It does not include RESPONSE_HEADER data.
@@ -2463,6 +2478,26 @@ process. This is the directory location where ModSecurity will swap data
to disk if it runs out of memory (more data than what was specified in
the SecRequestBodyInMemoryLimit directive) during inspection.
+ SecUnicodeMapFile
+Description: Defines the path to the file that will be used by
+ the urlDecodeUni transformation function to map Unicode code points
+during normalization.
+
Syntax: SecUnicodeMapFile /path/to/unicode.mapping
+
Example Usage: SecUnicodeMapFile
+/usr/local/apache/conf/crs/unicode.mapping
+
Scope: Any
+
Version: 2.6.1
+
+ SecUnicodeCodePage
+Description: Defines which Unicode code point will be used by
+the urlDecodeUni transformation function during normalization.
+
Syntax: SecUnicodeCodePage XXXXX
+
Example Usage: SecUnicodeCodePage 20127
+
Scope: Any
+
Version: 2.6.1
+
SecUploadDir
Description: Configures the directory where intercepted files
@@ -3416,9 +3451,9 @@ class="mw-headline"> STREAM_INPUT_BODY
variable is best used for two use-cases:
- For fast pattern matching - using @pm/@pmf to prequalify large
-text strings against the data. This is more performant vs. using
-REQUEST_BODY/ARGS_POST/ARGS_POST_NAMES as it happens before ModSecurity
-parsing/buffering in phase:2 variable population.
+text strings against any kind of content-type data. This is more
+performant vs. using REQUEST_BODY/ARGS_POST/ARGS_POST_NAMES as it
+happens before ModSecurity parsing in phase:2 variable population.
- For data substitution - using @rsub against this variable
allows you to manipulate live request body data. Example - to remove
offending payloads or to substitute benign data.
@@ -3429,14 +3464,10 @@ SecStreamInBodyInspection directive
STREAM_OUTPUT_BODY
This variable give access to the raw response body content. This
-variable is best used for two use-cases:
+variable is best used for case:
-- For fast pattern matching - using @pm/@pmf to prequalify large
-text strings against the data. This is more performant vs. using
-RESPONSE_BODY as it happens before ModSecurity parsing/buffering in
-phase:2 variable population.
-
- For data substitution - using @rsub against this variable
-allows you to manipulate live request body data. Example - to remove
+
- For data substitution - using @rsub against this variable allows
+ you to manipulate live request body data. Example - to remove
offending payloads or to substitute benign data.
- Note
- You must enable the
@@ -4508,13 +4539,14 @@ matched, but keep the first byte and last 4 bytes
# Detect credit card numbers in parameters and
# prevent them from being logged to audit log
-SecRule ARGS "@verifyCC \d{13,16}" "phase:2,nolog,pass,msg:'Potential credit card number in request',sanitiseMatchedBytes"
-SecRule RESPONSE_BODY "@verifyCC \d{13,16}" "phase:4,t:none,log,block,msg:'Potential credit card number is response body',sanitiseMatchedBytes:0/4"
+SecRule ARGS "@verifyCC \d{13,16}" "phase:2,nolog,capture,pass,msg:'Potential credit card number in request',sanitiseMatchedBytes"
+SecRule RESPONSE_BODY "@verifyCC \d{13,16}" "phase:4,t:none,log,capture,block,msg:'Potential credit card number is response body',sanitiseMatchedBytes:0/4"
- Note
- The sanitize actions affect only the data
as it is logged to audit log. High-level debug logs may contain
sensitive data. Apache access log may contain sensitive data placed in
-the request URI.
+the request URI. You must use capture action with sanitiseMatchedBytes,
+so the operator must support capture action. ie: @rx, @verifyCC.
sanitiseRequestHeader
@@ -5006,6 +5038,9 @@ expression.
# Detect suspicious client by looking at the user agent identification
SecRule REQUEST_HEADERS:User-Agent "@pm WebZIP WebCopier Webster WebStripper ... SiteSnagger ProWebWalker CheeseBot"
+- Note
- Starting on ModSecurity v2.6.0 this
+operator supports a snort/suricata content style. ie: "@pm A|42|C|44|F".
+
pmf
Short alias for pmFromFile.
@@ -5074,6 +5109,11 @@ easier inclusion of phrase files with rulesets, relative paths may be
used to the phrase files. In this case, the path of the file containing
the rule is prepended to the phrase file path.
+
+
+- Note
- Starting on ModSecurity v2.6.0 this
+operator supports a snort/suricata content style. ie: "A|42|C|44|F".
+
rbl
Description: Looks up the input value in the RBL (real-time
block list) given as parameter. The parameter can be an IPv4 address or a
@@ -5178,6 +5218,12 @@ expression.
# Detect suspicious client by looking at the user agent identification
SecRule REQUEST_HEADERS:User-Agent "@strmatch WebZIP"
+
+
+- Note
- Starting on ModSecurity v2.6.0 this
+operator supports a snort/suricata content style. ie: "@strmatch
+A|42|C|44|F".
+
validateByteRange
Description: Validates that the byte values used in input fall
@@ -5701,13 +5747,13 @@ SecCookieFormat 0
-
+
@@ -5817,7 +5863,7 @@ pages
href="http://sourceforge.net/apps/mediawiki/mod-security/index.php?title=Reference_Manual&printable=yes&printable=yes"
rel="alternate" title="Printable version of this page [alt-shift-p]"
accesskey="p">Printable version - Permanent link
@@ -5829,15 +5875,15 @@ href="http://sourceforge.net/apps/mediawiki/mod-security/index.php?title=Referen
src="Reference_Manual_files/poweredby_mediawiki_88x31.png" alt="Powered
by MediaWiki">
- - This page was last modified on 18 April 2011, at
-14:15.
- - This page has been accessed 8,604 times.
+ - This page was last modified on 7 June 2011, at
+18:47.
+ - This page has been accessed 33,697 times.
-
+