CGI-IDS
view release on metacpan or search on metacpan
Parameter key.
* rule
Regular expression to match. If the parameter value matches
this rule or the rule tag is not present, the IDS will not
run its filters on it. Case-sensitive; mode modifiers *m*
and *s* in use.
* encoding
Use value *json* if the parameter contains JSON encoded
data. IDS will test the decoded data, otherwise a false
positive would occur due to the 'suspicious' JSON encoding
characters.
* conditions
Set of conditions to be fulfilled. This is the parameter
environment in which the whitelisted parameter has to live
in. The parameter will only be skipped if all conditions
(and its own parameter rule) match.
In the example XML this means: *login_password* may only be
lib/CGI/IDS.pm view on Meta::CPAN
}
#****if* IDS/urldecode
# NAME
# urldecode
# DESCRIPTION
# Equivalent to PHP's urldecode
# INPUT
# string the URL to decode
# OUTPUT
# string the decoded URL
# SYNOPSIS
# IDS::urldecode($url);
#****
sub urldecode {
(my $theURL) = @_;
$theURL =~ tr/+/ /;
$theURL =~ s/%([a-fA-F0-9]{2,2})/chr(hex($1))/eg;
$theURL =~ s/<!â(.|\n)*â>//g;
utf8::decode($theURL);
lib/CGI/IDS.pm view on Meta::CPAN
Parameter key.
=item * rule
Regular expression to match.
If the parameter value matches this rule or the rule tag is not present, the IDS will not run its filters on it.
Case-sensitive; mode modifiers I<m> and I<s> in use.
=item * encoding
Use value I<json> if the parameter contains JSON encoded data. IDS will test the decoded data,
otherwise a false positive would occur due to the 'suspicious' JSON encoding characters.
=item * conditions
Set of conditions to be fulfilled. This is the parameter environment in which
the whitelisted parameter has to live in. The parameter will only be skipped if
all conditions (and its own parameter rule) match.
In the example XML this means: I<login_password> may only be skipped of filtering if
parameter I<action> equals I<login>, parameter I<send> is present
lib/CGI/IDS/Whitelist.pm view on Meta::CPAN
# NAME
# convert_if_marked_encoded
# DESCRIPTION
# Tries to JSON-decode and flatten a value to a plain string if the key has been marked as JSON in the whitelist.
# Other encodings may follow in future.
# INPUT
# HASHREF
# + key
# + value
# OUTPUT
# The JSON-decoded and flattened 'value' if key is marked JSON. Plain keys and values, newline separated.
# Untouched 'value' otherwise.
# SYNOPSIS
# $whitelist->convert_if_marked_encoded( key => 'data', value = '{"a":"b","c":["123", 111, "456"]}');
#****
=head2 convert_if_marked_encoded()
DESCRIPTION
Tries to JSON-decode and flatten a value to a plain string if the key has been marked as JSON in the whitelist.
Other encodings may follow in future.
INPUT
HASHREF
+ key
+ value
OUTPUT
The JSON-decoded and flattened 'value' if key is marked JSON. Plain keys and values, newline separated.
Untouched 'value' otherwise.
SYNOPSIS
$whitelist->convert_if_marked_encoded( key => 'data', value => '{"a":"b","c":["123", 111, "456"]}');
=cut
sub convert_if_marked_encoded {
my ($self, %args) = @_;
my $key = $args{key};
my $request_value = $args{value};
( run in 0.359 second using v1.01-cache-2.11-cpan-26ccb49234f )