#!/usr/bin/perl -T use strict; use warnings; use CGI; my $cgih = CGI->new(); my $filename = $cgih->param('dateiname'); if ($filename =~ /^([a-z]+)(\.[a-z]+)?$/i ) { # es werden nur Dateinamem aus Buchstaben mit Punkt und Buchstaben für den Dateityp zugelassen my $sauberer_dateiname = "$1$2"; # durch die Prüfung ist das Ergebnis "sauber" (untainted) my $fh; open($fh, '>', $sauberer_dateiname) or die "$!"; print $fh "Datei: $sauberer_dateiname\n"; # Datei weiterverarbeiten close ($fh) or die "$!"; } else { die ("Ungültiger Dateiname $filename"); }