Siechfred: Formulareingaben ein Sicherheitsrisiko?

Beitrag lesen

Hallo Nick.

if($archiv =~ m/$suche::volltext/ig) [...]
Könnte hierbei nun ein Sicherheitsproblem auftreten? Immerhin können die Benutzer alles mögliche in das Suche-Feld eingeben.

Ja, das können sie. So lange du den eingegebenen Suchstring jedoch weder im CGI-Kontext auslieferst oder ihn anderweitig "ausführen" lässt, sehe ich in diesem speziellen Fall kein Sicherheitsrisiko, wenn du ihn zuvor auf Gültigkeit hin untersucht hast. Das könnte z.B. so aussehen:

my $muster = '\w{3,}';
my $gesucht;
if( CGI::param('suchstring') =~ /^$muster$/ ) {
  $gesucht = CGI::param('suchstring');
}
else {
  print "Der Suchstring ist ungültig.";
}

Die angenommenen Vorgaben sind:

  • nur Buchstaben, Ziffern und der Unterstrich
  • der Suchstring muss mindestens 3 Zeichen lang sein.

Freundschaft!
Siechfred

PS: http://www.perldoc.com/perl5.8.4/pod/perlsec.html