use strict; use warnings; # strip any non-safe URL characters # Note: This is not Data validation! Other # code must verify/edit expected results sub SafeURL { my @args = @_; local $_; foreach (@args) { s/[^\w\d.\@-]//gi if defined; } return wantarray ? @args : pop @args; } # Note: escape html covered by CGI escapeHTML() # escape any non-safe javascript characters sub EscapeJavaScript { my @args = @_; local $_; foreach (@args) { s/([^\w\d.\@-])/uc sprintf("%%%02x",ord($1))/egi if defined; } return wantarray ? @args : pop @args; } ##################### # test subs my @array = qw( blah@&blah.blah/<test> lalalalal12340as-rqweousn //hokey/pokey ); foreach (@array) { my $result1 = SafeURL($_); my $result2 = EscapeJavaScript($_); print "string: $_\n SafeURL: $result1\n EscapeJavaScript: $resul +t2\n"; } print "SafeURL array test: " . join(', ', SafeURL(@array)) . "\n"; print "EscapeJavaScript array test: " . join(', ', EscapeJavaScript(@a +rray)) . "\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: CGI param cleansing
by merlyn (Sage) on Jun 02, 2006 at 19:36 UTC | |
by ambrus (Abbot) on Jun 02, 2006 at 19:50 UTC | |
by ruzam (Curate) on Jun 02, 2006 at 20:10 UTC |