Thread Fehler im Modul abfangen: und Taint Mode (14 answers)
Opened by anti at 2004-12-13 12:06

cbxk1xg
 2004-12-14 12:28
#49952 #49952
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Es geht auch ohne Modul. Ich hatte das gleiche Problem beim Backend meines CMS. Benutzer könnten ja eventuell Pfade selbst eingeben. Z.B. über GET. Um das auszuschließen benutzt das CMS nur untaint Pfade die ich selber festlege indem ich sie explizit als untaint definiere.

Dafür übergebe ich den gewünschten Pfad an eine Klasse die den Pfad freigibt. Falls das fehlschlägt "stirbt" das Script. Alternativ könnte man natürlich auch eine Fehlermeldung ausgeben.

Code: (dl )
&untaint( $path ) or die( "The following path is tainted:\n'$path'\nIt's not a secure path.\n" );


Die Klasse (sub)
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub untaint
{
my ($arg) = @_;
$$arg =~ m|^(.*)$|;

if ($$arg eq "")
{ $$arg = $1; return 1; }

if (($1 =~ m|^\.\.\/|) or ($1 =~ m|\/\.\.\/|))
{ return undef; }

else { $$arg = $1; }
}

View full thread Fehler im Modul abfangen: und Taint Mode