mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 09.12.2016 18:56 Benutzername: Passwort: Auto-Login

Thema: Könnte ich eine Spam-Schleuder werden? vom 26.05.2006


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Könnte ich eine Spam-Schleuder werden?
Autor Nachricht
thesecretboy
Threadersteller

Dabei seit: 24.05.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 26.05.2006 15:10
Titel

Könnte ich eine Spam-Schleuder werden?

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

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

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

Zitat:
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:


Code:
<?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">&nbsp;</td>
  </tr>
  <tr>
    <td height="570" class="menu">&nbsp;</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%">&nbsp;</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&auml;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">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3" class="menu">&nbsp;</td>
  </tr>
</table>
<div align="right"></div>
</body>
</html>


und hier der auslesende und versendende Teil des ganzen:

Code:
<?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">&nbsp;</td>
  </tr>
  <tr>
    <td height="570" class="menu">&nbsp;</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%">&nbsp;</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">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3" class="menu">&nbsp;</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.

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.


Zuletzt bearbeitet von thesecretboy am Fr 26.05.2006 15:52, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
tacker

Dabei seit: 22.03.2002
Ort: Offenbach am Main
Alter: 36
Geschlecht: Männlich
Verfasst Sa 27.05.2006 11:05
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, deine Lücke ist die direkte Verwendung von $_REQUEST['Betreff'] im Subject.

Subject steht im Header der Mail. Dort kann man dann prima eigene Header einschleusen.

Du darfst keine fremdeingabe zulassen. Pack alles in den Body.


Zuletzt bearbeitet von tacker am Sa 27.05.2006 11:06, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
thesecretboy
Threadersteller

Dabei seit: 24.05.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst Sa 27.05.2006 11:30
Titel

Antworten mit Zitat Zum Seitenanfang

Oops...
Vielen Dank erstmal für Deine Antwort.
Wäre es möglich, dass Du mir zeigst, wie es dann aussehen müsste, damit ich das Problem los bin?
Also mir ist es egal. Empfänger, Absender und Betreff kann bei mir immer fest sein.
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 27.05.2006 12:03
Titel

Antworten mit Zitat Zum Seitenanfang

Du könntest das ganze auch etwas anders lösen:


Code:
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"]

Kannst du somit übergeben ohne dir Sorgen machen zu müssen das sich was einschleicht was da nicht reingehört.
Die E-Mail Adresse muss so aus mind. zwei Zeichen, die Domain aus mind. zwei Zeichen und die Top Level Domain aus mind. zwei, maximal sechs Buchstaben bestehen.
Der Betreff aus mind. drei Druckbuchstaben, wo auch Leerzeichen und Interpunktion dazu gehören. Die Nachricht selbst aus mind. drei mal Buchstabe+Leerzeichen Abwechslung.



http://www.securephpwiki.com/index.php/Email_Injection


Zuletzt bearbeitet von m am Sa 27.05.2006 12:04, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
thesecretboy
Threadersteller

Dabei seit: 24.05.2006
Ort: -
Alter: -
Geschlecht: -
Verfasst So 28.05.2006 00:04
Titel

Antworten mit Zitat Zum Seitenanfang

Und wie sehen dann die beiden Dateien (Eingabe und Versand) fertig aus? Ich bin leider echt kein programmierer. Daher bräuchte ich (sofern das geht) wieder als kompletten Code. Oben habe ich den Eingabeteil und auch den Versandteil, so wie er im moment ist und funktioniert, komplett gepostet. Könntest Du mir dann auch das ganze nochmals komplett mit Deinen Änderungen posten? Wäre klasse. Vielen Dank "m". Lächel
  View user's profile Private Nachricht senden
 
Ähnliche Themen massig spam
thema spam
spam-richtlinien für newsletter
anti-spam script für gästebuch?
Tipp für die Bekämpfung von Spam über Kontaktformulare
Kontaktformular bringt bei Empfänger [SPAM]...
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.