hallo
Inwiefern habe ich ein Sicherheitsleck, wenn im Formular als hidden feld
module=login action=logout
stehen und dann ein eine entsprechende login.pm eingebunden wird, die eben diese Methode enthält?
Das hidden feld ist nicht das Problem. Das Problem ist, daß Parameter gleichnamige Funktionen aufrufen. D.h., man kann beliebige Funktionen per HTTP aufrufen 😉
Wie soll das hier möglich sein?
elsif( exists $POST->{xhr} and $POST->{xhr} eq 'xhr'){ $postresponseformat="json"; if( exists $POST->{modul} and $POST->{modul} =~ /^[a-z]+$/ ){ warn "param modul [" . $POST->{modul} . "] \r\n"; my $pm = 'apps/'.$POST->{modul}.'/'.$POST->{modul}.'.pm'; if( -e $pm && -r _ && -f _ ){ my $modulrun = require $pm; $actionresult = $modulrun->();
Ab require passiert es: require compiliert ein Modul, was per HTTP namentlich genannt wird.
Und wenn das da oben Perl sein soll, ist das ein ganz schlechtes Beispiel für lesbaren Code. Das ist Spaghetti Carbonara 😉
MfG