Kontaktformular mit Spamschutz

  • Hallo,

    mich hat jetzt etwas das php - Fieber gepackt, aber guten Ideen stehen leider mangelhafte praktische Fähigkeiten gegenüber :cry:

    Also vorneweg vielleicht mal der Code und danach meine Fragen:

    und meine sendcontact:

    Folgende Probleme stellen sich:

    1. Die Absenderemail steht im Mailtext und nicht unter "From", das müsste doch gehen, oder? Ich finde aber anscheinend nicht den verursachenden Fehler.

    2. Ich habe mich schlau gemacht und festgestellt, dass oben erstellter Code easy als Spamschleuder missbaucht werden kann - das muss ich nicht unbedingt haben.

    Captchas will ich aber auch nicht, die finde ich viel zu nervig. Was für weitere Spamschutzmöglichkeiten wären zu empfehlen?

    Wie wäre es, wenn ich die angegebene Emailadresse einfach als Teil der Mailnachricht belasse und sie nicht unter die "From" Angabe schreibe - seh ich das dann richtig, dass mein Formular nicht mehr dazu benutzt werden kann andere zuzuspammen, sondern nur noch mich selber? Ich meine, dann dürften ja so Angaben wie Bcc etc. nichts mehr bringen, da sie von dem php-Script nur noch als eine Textvariable ausgegeben werden. Seh ich das richtig? Gibt es bessere Möglichkeiten?

    Ich bedanke mich schon Mal bei allen geduldigen Helfern ;)

    Einmal editiert, zuletzt von Questionmark (29. November 2008 um 10:51)

  • Hallo,

    einmal hast du recht mit der Manipulationsmoeglichkeit. Da kannst du nur mit Captchas oder vergleichbarem Arbeiten. Vergleichbar:

    3 Ankreuzkaestchen. Nur bei einem (zufaelligem) Steht dahinter "Hier ankreuzen".

    Das ist einfacher als Captcha, aber fuer den Findigen Programmierer kein problem zu umgehen.

    ========

    Du musst vermutlich bei dem

    Code
    [COLOR=#000000][COLOR=#0000cc]mail[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$empfaenger[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]$mailbetreff[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]$emailtext[/COLOR][COLOR=#006600], [/COLOR][COLOR=#cc0000]"From:
    $_POST['Email']"[/COLOR][COLOR=#006600]);[/COLOR][/COLOR]

    noch ein "\r\n" hinzufuegen:

    Code
    [COLOR=#000000][COLOR=#0000cc]mail[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$empfaenger[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]$mailbetreff[/COLOR][COLOR=#006600], [/COLOR][COLOR=#0000cc]$emailtext[/COLOR][COLOR=#006600], [/COLOR][COLOR=#cc0000]"From:
    $_POST['Email'] \r\n"[/COLOR][COLOR=#006600]);[/COLOR][/COLOR]

    Aber erfahrungsgemaess ist die PHP mail Funktion einfach nur schlecht.
    Wenn du ein bisschen Komfort bei Mails willst versuch mal
    PHPMailer.
    Super einfach zu bedienendes Script, das sehr beliebt ist und viele nuetzliche Features hat.

    Ach und: Da du nur dich selber als Empfaenger eingetragen hast ist das mit dem Spam wohl kein groesseres Problem, ausser fuer dich selbst.

    MfG,

  • Danke erst mal für die Antwort.

    hab jetzt sowohl gegoogelt als auch bei hotscripts und free-php nachgeschaut und einige Scripte gefunden, die ähnlich geschrieben werden wie dein PHPMailer, aber nicht genau das Gleiche. Kannst du mir dazu vielleicht einen Link geben?

    Wahrscheinlich wird aber doch auch bei dem Script verlangt werden, dass ich das Copyright intakt lasse, das verschandelt dann aber mein ästhetisches Empfinden :rolleyes: und es zu löschen obwohl es eigentlich verboten ist, finde ich unfair - würde das selber ja auch blöd finden, wenn das einer mit meinen Scripten machen würde.

    Noch was: Soweit ich das verstanden habe, ist es durchaus möglich auch andere Empfänger zuzuspammen, auch wenn man nur sich als einzigen Empfänger eingetragen hat. Nach $_POST['from']müsste dan nach meiner Information beispielsweise nur r\nBCC: spam@opfer1.de; opfer@spammer2.com etc angegeben werden und alle würden eine Kopie der erhalten.

  • Danke erst mal für die Antwort.

    hab jetzt sowohl gegoogelt als auch bei hotscripts und free-php nachgeschaut und einige Scripte gefunden, die ähnlich geschrieben werden wie dein PHPMailer, aber nicht genau das Gleiche. Kannst du mir dazu vielleicht einen Link geben?

    Ja sicher:
    http://sourceforge.net/projects/phpmailer


    [quote}Wahrscheinlich wird aber doch auch bei dem Script verlangt werden, dass ich das Copyright intakt lasse, das verschandelt dann aber mein ästhetisches Empfinden :rolleyes: und es zu löschen obwohl es eigentlich verboten ist, finde ich unfair - würde das selber ja auch blöd finden, wenn das einer mit meinen Scripten machen würde.
    [/quote]

    Das ist OpenSource; Damit darfst du so ziemlich alles machen. (Nach GPL 2.0 oder jeder beliebigen spaeteren Version davon)


    Zitat

    Noch was: Soweit ich das verstanden habe, ist es durchaus möglich auch andere Empfänger zuzuspammen, auch wenn man nur sich als einzigen Empfänger eingetragen hat. Nach $_POST['from']müsste dan nach meiner Information beispielsweise nur r\nBCC: spam@opfer1.de; opfer@spammer2.com etc angegeben werden und alle würden eine Kopie der erhalten.

    Interessant. Hatte ich so nicht beachtet.

    Insofern einfach abzusichern, als dass du ja mit $_POST['from'] beliebig arbeiten kannst. Du kannst also absichern, dass nur eine Email-Adresse und nichts anderes in der Variable steht.
    z.B.

    Code
    if(strpos('\r', $_POST['from']) !== false)
    {
      die('get the hell outta here');
    }

    Du solltest zusaetzlich noch eine Regular Expression - preg_match() o.ä. - benutzen. Email-RegEx bekommst du auch an jeder Ecke nachgeschmissen.
    Und guck mal nach der Parameter-Reihenfolge von strpos() bin da immer so unsicher.

    MfG,