PERLentaucher: Formmailer Sicher oder Nicht - Fortsetzung

Beitrag lesen

Hallo beisammen:

folgend ein Perl-Skript für einen Form-Mailer, das ich aus dem Archiv gezogen habe:

#!/usr/bin/perl

-------> SMTP-Programm zum Versenden der Mail:

my $Sendmail_Prog = "/usr/sbin/sendmail";

-------> Modul für CGI-Scripts einbinden:

use CGI;
use strict;

-------> Modul für CGI-Scripts zum Einlesen der Formulardaten anwenden:

my $query = new CGI;
my @names = $query->param;

-------> interne Daten aus den erwarteten hidden-Feldern auslesen:

my $delimiter = ':'
my $mailto = 'Email-Addy';
my $returnhtml = $query->param('return');
my $subject = 'Irgendwas';

-------> Text der E-Mail aus den Formulardaten ermitteln:

my $mailtext = "";
my $name;
my @values;
my $value;

foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $mailtext = $mailtext.$value."\n";
    }
  }
}

-------> E-Mail versenden:

open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Mailprogramm konnte nicht gestartet werden\n";
  print MAIL "To: $mailto\n";
  print MAIL "Subject: $subject\n\n";
  print MAIL "$mailtext\n";
close(MAIL);

-------> Dankeseite an Browser senden:

print "Location: $returnhtml\n\n";

Laut Kommentaren sollte das wohl relativ sicher sein. Nun die Frage, was muss ich noch tun, damit der Mailer komplett ist?? Ich muss doch noch irgendwo die tatsächliche Mail-Adresse speichern, oder? Und das doch wohl nicht in der selben Datei??!?!

Außerdem stand da noch folgendes::

Zitat:
Einziger "Angriffspunkt", der aber nicht wirklich einer ist:

my $returnhtml = $query->param('return');

Ein "Fremdnutzer" kann nach dem Senden der Mail an DICH auf eine andere Seite weiterleiten. Wenn Du da flexibel sein willst, gib einfach einen String mit und nimm den im Script als Key in ein fest codiertes Hash:

my %return = (ret1 => "danke1.html", ret2 => "danke2.html")
print "Location: $return{$returnhtml}\n\n";

Zitat Ende.

wie habe ich das einzubauen, und ist das wirklich wichtig?

Vielen Dank
PERLentaucher