Zum Inhalt springen

Kontaktformular absichern gegen Spam


Empfohlene Beiträge

Hallo zusammen,

ich bekomme über ein Kontaktformular meiner Seite komische Mails. Die sehen in etwa so aus:

Die nachfolgende Nachricht wurde über www.meine-domain.de (Kontaktformular) versendet:

Website: own7648@meine-domain.de

Reset: own7648@meine-domain.de

Name: own7648@meine-domain.de

Firma: own7648@meine-domain.de

Ort: own7648@meine-domain.de

PLZ: own7648@meine-domain.de

Telefon: own7648@meine-domain.de

Vorname: breeze

Content-Type: multipart/alternative; boundary=bfe8c8b6d0f75481e79d3b634b2c28ec

MIME-Version: 1.0

Subject: f r medals

bcc: DanNicMan@aol.com

This is a multi-part message in MIME format.

--bfe8c8b6d0f75481e79d3b634b2c28ec

Content-Type: text/plain; charset=\"us-ascii\"

MIME-Version: 1.0

Content-Transfer-Encoding: 7bit

in the evening. e was only ill three days the two last he passed in delirium he raised himself in bed, and shook the bed posts was obliged

--bfe8c8b6d0f75481e79d3b634b2c28ec--

.

Telefax: own7648@meine-domain.de

Strasse: own7648@meine-domain.de

Email: own7648@meine-domain.de

Nachricht: own7648@meine-domain.de

Datum/Zeit: 26.05.2006 15:31:41

Nun habe ich mich mal ein bischen belesen und gesehen, dass solche Formulare, die die einfach Mail-Funktion nutzen (wie meines auch), sehr gern als SPAM-Schleuder mißbraucht werden. Auf den meissten Seiten ist aber zu lesen, dass als EMail-Absender immer eine Variable aus dem Eingabefeld der Email-Adresse benutzt wird, um die Mail beim Empfänger mit der korrekten Absender-Adresse ankommen zu lassen.

Ich habe dies bei mir aber nicht so gelöst und würde gern wissen, ob ich dennoch als SPAM-Schleuder mißbraucht werden könnte oder ob ich durch die Angabe fester Adressen "sicher" bin.

Hier mal der Code meines Eingabeformulares:

<?php $mySite = "kontakt"; ?> 

<html> 

<head> 

<?php require_once('_includes/meta.php'); ?> 


<body background="images/bg_site.gif"> 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

<table width="100%" border="0" cellspacing="0" height="100%"> 

  <tr> 

    <td colspan="3" class="menu"> </td> 

  </tr> 

  <tr> 

    <td height="570" class="menu"> </td> 

    <td width="950" height="570"> 

      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 

        <tr bgcolor="#547DB1"> 

          <td colspan="3" height="101"> 

            <div align="center"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><b> 

              <?php require_once('_includes/header.php'); ?> 

              </b></font></div> 

          </td> 

        </tr> 

        <tr> 

          <td width="188" valign="top" height="434" bgcolor="#547DB1"> 

            <?php require_once('_includes/menu.php'); ?> 

          </td> 

          <td height="434" colspan="2"> 

            <table width="100%" border="0" cellspacing="3" height="434" background="images/bg_main.gif" style="background-position: top; background-repeat: repeat-x;"> 

              <tr> 

                <td valign="top" class="right" width="10" rowspan="5" height="100%"> </td> 

                <td valign="top" class="right" width="98%" rowspan="5" height="394"><br> 

                  Kontakt:<br> 

                  <br> 

                  <table border="0" cellpadding="0" cellspacing="0" width="633"> 

                    <form action="kontakt_auswerten.php" method="post"> 

                      <tr> 

                        <td width="157" valign="bottom" height="18"><font size="2" face="Tahoma">Anrede</font></td> 

                        <td width="476" height="18"> 

                          <select name="Anrede" class="text_schwarz_normal" size="1"> 

                            <option>-- bitte wählen Sie --</option> 

                            <option>Herr</option> 

                            <option>Frau</option> 

                          </select> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" height="26" valign="bottom"><font size="2" face="Tahoma">Name: 

                          *</font></td> 

                        <td width="476" height="26"> 

                          <input name="Name" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="12"><font size="2" face="Tahoma">Vorname: 

                          *</font></td> 

                        <td width="476" height="12"> 

                          <input name="Vorname" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="12"><font size="2" face="Tahoma">Firma 

                          / Praxis:</font></td> 

                        <td width="476" height="12"> 

                          <input name="Firma" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="20"><font size="2" face="Tahoma">Strasse:</font></td> 

                        <td width="476" height="20"> 

                          <input name="Strasse" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="27"><font size="2" face="Tahoma">PLZ:</font></td> 

                        <td width="476" height="27"> 

                          <input name="PLZ" size="10" type="text" maxlength="5" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="28"><font size="2" face="Tahoma">Ort:</font></td> 

                        <td width="476" height="28"> 

                          <input name="Ort" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="28"><font size="2" face="Tahoma">Telefon:</font></td> 

                        <td width="476" height="28"> 

                          <input name="Telefon" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="24"><font size="2" face="Tahoma">Telefax:</font></td> 

                        <td width="476" height="24"> 

                          <input name="Telefax" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="28"><font size="2" face="Tahoma">EMail-Adresse: 

                          *</font></td> 

                        <td width="476" height="28"> 

                          <input name="Email" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" valign="bottom" height="29"><font size="2" face="Tahoma">Website:</font></td> 

                        <td width="476" height="29"> 

                          <input name="Website" size="64" type="text" maxlength="64" class="text_schwarz_normal"> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td width="157" height="69" valign="middle"><font size="2" face="Tahoma">Ihre 

                          Nachricht an <br> 

                          mich:</font></td> 

                        <td width="476" height="69"> 

                          <textarea cols="49" name="Nachricht" rows="3" class="text_schwarz_normal"></textarea> 

                        </td> 

                      </tr> 

                      <tr> 

                        <td colspan="2" height="29"> 

                          <div align="center"> 

                            <input name="Send" type="submit" value="Abschicken"> 

                            <input name="Reset" type="reset" value="Löschen"> 

                          </div> 

                        </td> 

                      </tr> 

                    </form> 

                  </table> 

                </td> 

              </tr> 

            </table> 

          </td> 

        </tr> 

        <tr> 

          <td bgcolor="#547DB1" width="188"> 

            <?php require_once('_includes/copy.php'); ?> 

          </td> 

          <td bgcolor="#547DB1" width="537"> 

            <?php require_once('_includes/nav.php'); ?> 

          </td> 

          <td bgcolor="#547DB1" height="36" width="225"> 

            <div align="right"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><b><img src="images/webadressbuch.jpg" width="172" height="34" border="1"></b></font></div> 

          </td> 

        </tr> 

      </table> 

    </td> 

    <td height="570"> </td> 

  </tr> 

  <tr> 

    <td colspan="3" class="menu"> </td> 

  </tr> 

</table> 

<div align="right"></div> 

</body> 

</html> 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ging nicht mehr in den ersten Beitrag (zu viele Zeichen (SORRY))

und hier der auslesende und versendende Teil des ganzen:

<?php $mySite = "kontakt"; ?> 

<html> 

<head> 

<?php require_once('_includes/meta.php'); ?> 


<body background="images/bg_site.gif"> 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

<table width="100%" border="0" cellspacing="0" height="100%"> 

  <tr> 

    <td colspan="3" class="menu"> </td> 

  </tr> 

  <tr> 

    <td height="570" class="menu"> </td> 

    <td width="950" height="570"> 

      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 

        <tr bgcolor="#547DB1"> 

          <td colspan="3" height="101"> 

            <div align="center"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><b> 

              <?php require_once('_includes/header.php'); ?> 

              </b></font></div> 

          </td> 

        </tr> 

        <tr> 

          <td width="188" valign="top" height="434" bgcolor="#547DB1"> 

            <?php require_once('_includes/menu.php'); ?> 

          </td> 

          <td height="434" colspan="2"> 

            <table width="100%" border="0" cellspacing="3" height="434" background="images/bg_main.gif" style="background-position: top; background-repeat: repeat-x;"> 

              <tr> 

                <td valign="top" class="right" width="10" rowspan="5" height="100%"> </td> 

                <td valign="top" class="right" width="98%" rowspan="5" height="394"><br> 

                  Kontakt:<br> 

                  <br> 

                  <font face="Verdana" size="1"> 

                  <?php 




if($_REQUEST['Send']) 

{ 

   if(empty($_REQUEST['Name']) || empty($_REQUEST['Vorname']) || empty($_REQUEST['Email'])) 

   { 

      echo"<font face=Verdana size=1>Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus! Pflichtfelder erkennen Sie am *</font>"; 

   } 

   else 

   { 

      $Mailnachricht = "Die nachfolgende Nachricht wurde über www.meine-domain.de (Kontaktformular) versendet: \n\n"; 

      while(list($Formularfeld, $Wert)=each($_REQUEST)) 

      { 

         if($Formularfeld!="Send") 

         { 

            $Mailnachricht .= $Formularfeld.": ".$Wert."\n"; 

         } 

      } 

      $Mailnachricht .= "\nDatum/Zeit: "; 

      $Mailnachricht .= date("d.m.Y H:i:s"); 

      $Mailbetreff = "Kontakt ueber www.meine-domain.de"; 

      $Mailbetreff .= $_REQUEST['Betreff']; 

      [b]mail("info@meine-domain.com", $Mailbetreff, $Mailnachricht, "", "-f info@meine-domain.com");[/b] 

      echo"<font face=Verdana size=1>Vielen Dank für Ihre Nachricht an uns. Wir werden diese umgehend bearbeiten.</font>"; 

   } 

} 

else 

{ 

   echo"<font face=Verdana size=1>Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontakt.php\">Seite</a></font>."; 

} 


?> 

                  </font> </td> 

              </tr> 

            </table> 

          </td> 

        </tr> 

        <tr> 

          <td bgcolor="#547DB1" width="188"> 

            <?php require_once('_includes/copy.php'); ?> 

          </td> 

          <td bgcolor="#547DB1" width="537"> 

            <?php require_once('_includes/nav.php'); ?> 

          </td> 

          <td bgcolor="#547DB1" height="36" width="225"> 

            <div align="right"><font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif"><b><img src="images/webadressbuch.jpg" width="172" height="34" border="1"></b></font></div> 

          </td> 

        </tr> 

      </table> 

    </td> 

    <td height="570"> </td> 

  </tr> 

  <tr> 

    <td colspan="3" class="menu"> </td> 

  </tr> 

</table> 

<div align="right"></div> 

</body> 

</html> 

Das heisst... ich bekomme die Mails aus dem Formular immer an die Adresse info@meine-domain.com und immer mit der Absender-Adresse info@meine-domain.de. Da ich für die Absenderadresse und auch für die Empfänger-Adresse feste Werte eingetragen habe, würde ich gern wissen, ob da doch was passieren kann und wenn ja, wie es besser wäre. Also wie der Code aussehen müsste, dass dies dann doch nicht so einfach ist.

Ich habe im übrigen auch darauf geachtet, dass in allen (bis auf das Texteingabefeld) nur Einzeilige Eingaben möglich sind.

Ich bin leider recht unerfahren in PHP und eigentlich froh, dass es so funktioniert. Wenn ich als Euerer Meinung nach was ändern müsste, dann wäre ich Euch echt dankbar, wenn Ihr mir genau zeigen würdet, wo ich was ändern/hinzufügen sollte. Ggf. (und das wäre mir am liebsten) könnt ihr mir ja auch den entsprechend geänderten Inhalt der beiden Dateien schicken in denen die notwendigen Änderungen drin sind, damit das Formular sicher ist/wird.

Ich danke Euch schonmal wie verrückt.

Edit: Ja, ich weiss... es gibt für "sichere Formulare" einen haufen Threads, aber ich wollte es getrennt wissen, weil ich ja feste Werte für Absender und Emfänger habe und hier vielleicht das Risiko anders zu bewerten ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hatte meine Frage auch schonmal in einem anderen Forum gestellt und diesen Code bekommen:

if (preg_match('/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}$/', $_POST["from"]) 

    && preg_match('/^[[:print:]]{3,}$/', $_POST["subject"]) 

    && preg_match('/^[[:print:][:space:]]{3,}$/', $_POST["message"]) 

  ) 

  mail("deine@Email.de", "eMessage: ".$_POST["subject"], $_POST["message"], "From: ".$_POST["from"]); 

else 

  die("Nachricht enthält verbotene Zeichen.");  



$_POST["from"] 

$_POST["subject"] 

$_POST["message"] 

Auf meine Frage dann, wo man dies dann einfügen muss und wie dann der gesamte Code aussehen muss, erhielt ich aber keine Antwort mehr.

Könnt Ihr mir hier helfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

ohne jetzt großartig die 15000 Zeilen ;) Code bei dir duchguckt zu haben

würde ich mal vermuten dass das etwa dorthin kommt wo du diesen Abschnitt hast:

$Mailnachricht .= "\nDatum/Zeit: "; 
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Kontakt ueber www.meine-domain.de";
$Mailbetreff .= $_REQUEST['Betreff'];
mail("info@meine-domain.com", $Mailbetreff, $Mailnachricht, "", "-f info@meine-domain.com");
echo"<font face=Verdana size=1>Vielen Dank für Ihre Nachricht an uns. Wir werden diese umgehend bearbeiten.</font>"; [/PHP]

Allerdings musst du deine Variablen dem entsprechend (oder andersrum) anpassen.

Z.B.:aus "$_POST["subject"]" -> "$Mailbetreff" machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nun habe ich mich mal ein bischen belesen und gesehen, dass solche Formulare, die die einfach Mail-Funktion nutzen (wie meines auch), sehr gern als SPAM-Schleuder mißbraucht werden. Auf den meissten Seiten ist aber zu lesen, dass als EMail-Absender immer eine Variable aus dem Eingabefeld der Email-Adresse benutzt wird, um die Mail beim Empfänger mit der korrekten Absender-Adresse ankommen zu lassen.

Ich habe dies bei mir aber nicht so gelöst und würde gern wissen, ob ich dennoch als SPAM-Schleuder mißbraucht werden könnte oder ob ich durch die Angabe fester Adressen "sicher" bin.

Deine mail Funktion sendet ja nur Mails an eine bestimmte, fest in der funktion eingetragene Adresse. Alles was passieren kann ist, dass jemand 100e Mails an diese Adresse sendet, aber als Spam-Schleuder ist deine Funktion nicht zu missbrauchen.

Der code unten prüft nur, ob die Absenderadresse etc. stimmen bzw. ungültige Zeichen enthalten.

Also nach kurzem Ansehen würde ich sagen, die Funktion ist "Spamschleuder-sicher".

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...