eg/plpinfo: escape html characters in dumped fields
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 26 Feb 2017 23:22:19 +0000 (00:22 +0100)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 31 Mar 2018 20:58:53 +0000 (22:58 +0200)
Support special characters in environment and user input values.
Closes XSS vector if public.

eg/plpinfo.plp

index f25dc767f7b79a1f4688526dd4fbafcb487af6e1..e22ca841348c7b9121a3ed24c3fba6d7ee24ac3e 100644 (file)
@@ -58,7 +58,7 @@ printf "<tr><th>%s</th><td>%s</td></tr>\n", @$_ for (
 <:
 s/(?<=,)/<wbr>/g for values %ENV; # allow breaks at commas (HTTP_ACCEPT*)
 printf("<tr><th>%s</th><td>%s</td></tr>\n",
-       $_, defined $ENV{$_} ? $ENV{$_} : "<i>no value</i>"
+       $_, defined $ENV{$_} ? EscapeHTML($ENV{$_}) : "<i>no value</i>"
 ) for sort keys %ENV;
 :></table>
 
@@ -68,7 +68,7 @@ printf("<tr><th>%s</th><td>%s</td></tr>\n",
 <:
 for my $var (qw[ get post cookies header ]) {
        printf("<tr><th>%s{'%s'}</th><td>%s</td></tr>\n",
-               $var, $_, defined $$var{$_} ? $$var{$_} : "<i>no value</i>"
+               $var, $_, defined $$var{$_} ? EscapeHTML($$var{$_}) : "<i>no value</i>"
        ) for sort keys %$var;
 }
 :></table>