Hell-O!
Ist es eigentlich sinnvoll, im Formmailer nicht nur die Werte sondern auch deren Namen auf spam-/hackerverdächtige Elemente zu prüfen?
Grundsätzlich und theoretisch wäre ein Angriff genauso wie über den Wert auch über den Namen möglich, wobei die Gefahr bei der GET-Methode größer ist, da es hier einfacher geht (einfach nur das Name/Wert-Paar anhängen). Ein sicheres Script fragt m.E. nur die Name/Wert-Paare ab, die es erwartet und ignoriert ungefragte Pärchen.
Oder kommen diese gar nicht an, wenn sie nicht der Namenskonvention entsprechen?
Der Typ CDATA ist da ziemlich umfassend: Erlaubt ist alles, was die Zeichenreferenz des Dokumentes hergibt.
foreach(@names) {
$name = $_;
mache doch gleich die Wertzuweisung im foreach:
foreach my $name (@names) { ... }
# $name prüfen <=========================================
Wenn du dir die übermittelten Namen via CGI::param holst, würde ich diese mit einer Liste von möglichen Namen (die man bspw. in einem Hash ablegen könnte) abgleichen:
use CGI;  
  
my %formfields = ( foo => '',  
                   bar => '',  
                   baz => ''  
                 );  
  
foreach (CGI::param) {  
  if( exists $formfields{lc($_)} ) {  
    # Value prüfen  
    $formfields{$_} = CGI::param($_);  
    print $_, ' = ', $formfields{$_}, "\n";  
  }  
  else {  
    print 'Unbekannter Name: ', $_;  
  }  
}
Im Ergebnis hast du alle zulässigen Name/Wert-Paare geprüft in deinem Hash %formfields stehen, den du dann weiter verwenden kannst. Aber vielleicht bin ich ja Morgens vor dem 5. Kaffee etwas neurotisch :-)
Siechfred
Hier könnte Ihre Werbung stehen.
Viel Lärm um nichts || Steuerliche Einordnung des Rangrücktritts
 nicht angemeldet
 nicht angemeldet Struppi
 Struppi