Perl und die Sicherheit


Einführung

In Perl, wie in jeder anderen Programmiersprache, ist es einfach, durch Unachtsamkeit, Sicherheitslücken einzubauen. Dies ist besonders bei SetUID-Skripte relevant. Aus diesem Grunde verfügt Perl über einige Sicherheitsmechanismen.

Tainting

Eine Variable ist in Perl tainted, wenn sie von draussen kommt, z.B. von einer Benutzereingabe. Werden Taint-Checks eingeschaltet (mit -T Flag), so kann z.B. nicht mehr folgendes ausgeführt werden:
#!/usr/local/bin/perl -wT
$cmd = ;  # $cmd ist 'tainted'
system($cmd);    # wird wg. -T abgewiesen.
Ein Erläuterung zu den Taint-Checks finden Sie in man perlsec.

Safe

Sie kennen wahrscheinlich chroot(). Neben chroot() verfügt Perl über ein Module Safe.pm, das einen eigenen, von main:: gekapselten Namens- und Code-Raum zur Verfügung stellt. Somit können in einer Nische "unsichere" Perl-Zeilen ausgeführt werden, ohne das sich dies den Hauptcode gefährden würde.

Safe.pm ist Bestandteil der Perl-Distribution. Siehe man Safe für mehr Details.

Vorherige Seite, Index, Nächster Index, Hauptindex,


Copyright © 1997/08/16 by Farid Hajji.