You can add a class to the ApacheHandler's "plugins" arrayref, for example
sub handler {
my $r = shift; # Apache2::RequestRec object;
my $ah = HTML::Mason::ApacheHandler->new(
plugins => [ 'MasonX::Plugin::CheckARGS' ]
);
return $ah->handle_request($r);
}
where MasonX::Plugin::CheckARGS is in @INC and contains something like
package MasonX::Plugin:: CheckARGS;
use base qw(HTML::Mason::Plugin);
sub start_request_hook {
my ( $self, $context ) = @_;
my $args_ref = $context->args();
for my $arg ( @{$args_ref} ) {
# Do something to each $arg, for example:
utf8::is_utf8($arg) || utf8::decode($arg);
}
return;
}
1;
On 6 Jun 2011, at 4:42 PM, Shane McCarron wrote:
> I had a user report that, in some circumstances, it is possible to supply
> weird parameters on a request to my Mason app and inject random HTML into my
> pages.
>
> Now, obviously I should be examining all parameters as they are passed in,
> and I should be escaping them if I just print them out (via |h). But I am
> not. And there are hundreds of pages. So I was wondering.... is there a
> way to have my master autohandler examine the ARGS hash and clean out
> anything nasty? I don't seem to be able to modify the values in %ARGS in a
> way that makes those modifications available globally... Any ideas? Or,
> better yet, is there some option that I can just enable that would do magic
> CGI parameter cleaning?
>
> --
> Shane McCarron
> [email protected]
> ------------------------------------------------------------------------------
> Simplify data backup and recovery for your virtual environment with vRanger.
> Installation's a snap, and flexible recovery options mean your data is safe,
> secure and there when you need it. Discover what all the cheering's about.
> Get your free trial download today.
> http://p.sf.net/sfu/quest-dev2dev2
> _______________________________________________
> Mason-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mason-users
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Mason-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mason-users