Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kontaktformular absichern gegen Spam

Empfohlene Antworten

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> 

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.

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?

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.

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".

Okay... na das ist ja mal ne Antwort. Das heisst ja dann im Umkehrschluss, dass die Mail-Funktion in meinem Falle ohne Gefahr für andere ist... cool. Vielen Dank. Das reicht mir vollkommen aus. Sorry für die langen Code-Post's.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.