From 927b8258de3030178d59304b9b45648930482d49 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Wed, 25 Jul 2007 13:12:22 +0200 Subject: [PATCH] Fix a few XSS-ish issues. --- perl/Sesse/pr0n/Common.pm | 8 ++++++-- perl/Sesse/pr0n/Index.pm | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/perl/Sesse/pr0n/Common.pm b/perl/Sesse/pr0n/Common.pm index e12e8dc..073996f 100644 --- a/perl/Sesse/pr0n/Common.pm +++ b/perl/Sesse/pr0n/Common.pm @@ -24,6 +24,7 @@ use LWP::Simple; # use Image::Info; use Image::ExifTool; use HTML::Entities; +use URI::Escape; BEGIN { use Exporter (); @@ -130,8 +131,11 @@ sub get_query_string { next unless defined($value); next if (defined($defparam->{$key}) && $value == $defparam->{$key}); - # FIXME: We'll need to escape _ here somehow - $value =~ s/ /_/g; + $value = URI::Escape::uri_escape($value); + + # Unescape a few for prettiness (we'll need something for a real _, though) + $value =~ s/%20/_/g; + $value =~ s/%2F/\//g; $str .= ($first) ? "?" : ';'; $str .= "$key=$value"; diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index b8b954f..b8825bd 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -251,6 +251,7 @@ sub handler { for my $e (@equipment) { my $eqspec = $e->{'model'}; $eqspec .= ', ' . $e->{'lens'} if (defined($e->{'lens'})); + $eqspec = HTML::Entities::encode_entities($eqspec); my %newsettings = %defsettings; -- 2.39.2