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
> halindr...@gmail.com
> ------------------------------------------------------------------------------
> 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
> Mason-users@lists.sourceforge.net
> 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
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to