Actions
- Property
- Description
Action- The action to take. Following are the values :
Block- Blocks the matched data using the specified strike character.Encrypt- Encrypts the matched data and masks it with the specified strike character.Replace- Replaces the matched data with a specified text string.DropHit- Drops the current hit (no further action is taken). Any rule may have a drop hit action.DropResponse- Drops the response from the current hit.ReqSet- Sets or replaces the value for the specified name/value pair in the request. Creates the name/value pair if it doesn't exist. Also creates the specified section if is doesn't exist.ReqAppend- Appends to the value of the specified name/value pair in the request. Creates the name/value pair if it doesn't exist. Also creates the specified section if it doesn't exist.ReqDelete- Removes the specified name/value pair completely from the request. This does not remove the section, even if empty.
Key- key ID to use for encryption if
Action=Encrypt. Group- Group name (in the format domain\groupname) to use for encryption
if
Action=Encrypt.Note: Use eitherKeyorGroupto specify the encryption key, not both. Section- The section name of the data to act upon. If this is value that
is set to
response, then the response is processed. This can also be one of the following reserved names:urlfield- Performs the action for the specified ValueName (or all if ValueName is omitted) for values in the urlfield section, QUERY_STRING, query string in RawRequest (if present) and the query string in HTTP_REFERER and the Referer request header and request body in RawRequest (if present).cookies- Performs the action for the specified ValueName (or all if ValueName is omitted) for values in the[cookies]section, HTTP_COOKIE and HTTP_SET_COOKIE name-value pairs, Set-Cookies headers in the ResponseHeader section (if present), Set-Cookie headers in the response, and the[cookies]header in the RawRequest section (if present).Note: If a Section is not specified in an action, then the entire request buffer (REQ) is used.
IgnoreSpecialTrueorFalsevalue that is indicating whether to ignore special handling whenurlfieldorcookiesis specified for the Section. Setting this toTrueallowsStartPatternorStartPatternREto be used in theurlfieldorcookiessections. Default isFalse.Field- One or more optional field names (name portion of the name-value
pair). If both Field and ValueName are omitted, then the entire section
is blocked/encrypted. This can also be one of the following reserved
names:
body- IfSection=responsethen, this value specifies the response body as the target. IfSection=RawRequest, then the request body (if present) is processed.
ValueName- One or more names of values (in multi-value name-value pairs,
such as HTTP_COOKIE) or the names of items when
Section=urlfieldorSection=cookies. InvertTrueorFalsevalue that is indicating whether to invert the action (perform on all fields or ValueNames EXCEPT the ones specified).- If
ValueNameis specified, then all except the name(s) specified inValueNameare processed. - If
ValueNameis not specified, then the name(s) specified forFieldis/are excepted from the action.Note: This can only be used withBlock,Encrypt, andReplaceactions.StartPatternandStartPatternREcannot be used with an invert action.
- If
StartPattern- The starting string pattern to search for within the specified
data. The data immediately following the matching pattern is processed.
If
StartPatternis used, then you must also specify eitherEndPatternor Length, unless you set Inclusive toTrue. WhenInclusive=True, theStartPattern(and optionalEndPattern) are blocked/encrypted as well. This is useful for blocking or encrypting a constant data string. StartPatternRE- Regular expression version of StartPattern. This can be used to
specify a standard regular expression to define the starting pattern
to find. You can use either
StartPatternorStartPatternRE, but not both. EndPattern- The string pattern which signals the end of the data that is matched
by a StartPattern. The data up to, but not including, the
EndPatternis processed (unlessInclusive=True). EndPatternRE- Regular expression version of
EndPattern. This can be used to specify a standard regular expression to define the ending pattern to find. You can use eitherEndPatternorEndPatternRE, but not both. Length- Used in lieu of an
EndPatternorEndPatternRE, this value specifies the length of the data (in bytes) to process following a matchedStartPattern(orStartPatternRE). InclusiveTrueorFalsevalue that is indicating whether theStartPattern(orStartPatternRE) and (optional)EndPattern(orEndPatternRE) are blocked or encrypted. Default isFalse.RepeatCount- This can be used for actions that have a
StartPatternorStartPatternREto specify how many instances of data that is matching the pattern is processed. ReplaceString- The string that is used to replace the original data when
Action=Replace. CaseSensitiveTrueorFalsevalue that is indicating whether the searches for field names and/or patterns must be case-sensitive. Default isFalse. Setting this toTruespeeds up searches.StrikeChar- The character that is used to replace the original data that is
blocked or encrypted. This can be any alphanumeric character or symbol
not included in the following list:
- . (period)
- , (comma)
- / (forward slash)
- \ (backslash)
- [(left square bracket)
- ] (right square bracket)
- | (pipe)
- '(single quotation mark)
- " (double quotation mark)
StrikeLen- Optional length (in bytes) of strike data. This is the number
of StrikeChar characters that are used to replace the original data
(if
Action=BlockorAction=Encrypt).- If
StrikeLenis longer than the original data length, then more strike characters are added. - If
StrikeLenis shorter than the original data length, thenStrikeLencharacters are replaced with theStrikeCharand the remaining data is removed. - If
StrikeLenis a negative number, then the number of characters represented by the absolute value ofStrikeLenis left as-is. For example, to leave the last four characters or a value untouched, setStrikeLen=-4. - For more flexible options, see BlockingMask.
- If
BlockingMask- An optional regular expression that specifies which characters
in the found data are replaced with the strike character (does not
apply to Replace action). All characters within a group (defined by
parentheses) in the regular expression are replaced with the strike
character. Characters that match part of the pattern outside of a
group are not replaced. Examples: The following mask
would block just the numbers in a Social Security Number, leaving
the dashes visible:
BlockingMask=([0-9]{3})-([0-9]{2})-([0-9]{4})This example would leave the first four digits of a credit card number visible:
BlockingMask=[0-9]{4}([0-9]*)BlockingMask is used in lieu of StrikeLen. You can use one or the other, but not both.
Note: Be careful when you use BlockingMask. If the data does not match the regular expression that is specified for BlockingMask, then the data is not blocked or encrypted. ReqSetSection- Specifies the section for the name-value pair for a
ReqSet,ReqAppend, orReqDeleteaction.ReqSetSectionis required for these three actions. ReqSetField- Specifies the name of a name-value pair for a
ReqSet,ReqAppend, orReqDeleteaction.ReqSetFieldis required for these three actions. ReqSetResult- This option is used in conjunction with
StartPatternREto produce a formatted value for aReqSetorReqAppendaction. TheStartPatternREexpression should contain one or more "groups", defined by parentheses within the regular expression.ReqSetResultis a string containing literal text and placeholders for the data captured byStartPatternRE. Examples:
Would result in a following value like:StartPatternRE=name="(.*?)" value="(.*?)" ReqSetResult=Field {g1} value: {g2}Field name value: BobThe first placeholder, {g1}, is replaced with the value from the first group in the regular expression. {g2} gets the second value, and so on. The result string is then used as the value for the
ReqSetorReqAppendaction.