Formulareingaben ein Sicherheitsrisiko?
Nick Wolf
- perl
Hallo,
Ich möchte demnächst eine Suche anbieten, die ein Newsarchiv und jede Menge einzelner Dateien durchsuchen soll.
Das ganze funktioniert auch, es stellt sich mir aber noch die Frage nach der Sicherheit des ganzen.
Derzeit wird der zu suchende Begriff in ein Formularfeld eingegeben und anschliessend in
if($archiv =~ m/$suche::volltext/ig) [...]
mit dem Inhalt der zu durchsuchenden Daten verglichen.
Könnte hierbei nun ein Sicherheitsproblem auftreten? Immerhin können die Benutzer alles mögliche in das Suche-Feld eingeben.
Gruß,
Nick
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:
Freundschaft!
Siechfred
PS: http://www.perldoc.com/perl5.8.4/pod/perlsec.html
Hallo,
Könnte hierbei nun ein Sicherheitsproblem auftreten? Immerhin können die Benutzer alles mögliche in das Suche-Feld eingeben.
Wenn eine Benutzereingabe _ungeprüft_ an ein - shell - kommando übergeben wird, ists bedenklich.
Benutzer gibt ein:
blubber | rm -fR *
Beispielsweise will der Script sowas machen
$cmd = qx(ls $in);
Wenn nun in $in die o.g. Zeile steht, schert sich das ls - Kommando einen Schies um das blubber und peipt (eng.: pipe) auf das rm - Kommando:
rm -fR *
das löscht dann ohne Rückfrage alle Dateien im aktuellen Verzeichnis, alle Unterverzeichnisse und alle Dateien in allen Unterverzeichnissen...
Viele Grüße, Rolf
Wenn eine Benutzereingabe _ungeprüft_ an ein - shell - kommando übergeben wird, ists bedenklich.
nunja, das ist klar... aber das ist ja in meinem Fall nicht möglich, oder?
Viele Grüße, Rolf
Ebenso, Nick