Webhilfe.info/board

Normale Version: Kontaktformuar spammning
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Ich habe mal eine Frage an die Profis.

Ich benutze schon seit lagen einen php Script für Kontakt.

Gestern bekomme ich eine Email von meinen Provider,
der sagte, das über dieses Formular gespammt wird.
Protokoll war mit bei (Er hatte Recht, mit meinen Daten wurden Emails verschickt)
Wie kann das sein?
Wie kann man das sicherer machen.
Ich habe es erstmal runtergelöscht.
Danke für Hilfe.
mfg
Sven

Code:
<html>
<head>
<title>Kontaktaufnahme</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="copyright" content="Name">
<meta name="robots" content="all">
<style type="text/css">
<!--
.inputtext {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: normal;
color: #000000;
text-decoration: none;
background-color: #eeeeee;
padding: 2px;
height: 20px;
width: 250px;
border: 1px solid #CCCCCC;
}
.inputtextarea {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: normal;
color: #000000;
text-decoration: none;
background-color: #eeeeee;
padding: 2px;
height: 150px;
width: 250px;
border: 1px solid #CCCCCC;
}
.inputbutton {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #000000;
text-decoration: none;
background-color: #eeeeee;
padding: 2px;
border: 1px solid #CCCCCC;
}
-->
</style>
</head>

<body><table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
      <?php
if (!empty($HTTP_POST_VARS)) {extract($HTTP_POST_VARS);}
$remote = getenv("REMOTE_ADDR");
$date = date("m.d.Y H:i:s");
if ($remote == "") $ip = "<i> no ip </i>";
else $ip = getHostByAddr($remote);
if (!isset($ausgefllt)){
?>
      <form name="form1" method="post" action="mailform.php">
        <table width="319" border="0" cellspacing="2" cellpadding="2">
          <tr>
            <td colspan="2">&nbsp;<font size="2" face="Arial, Helvetica, sans-serif"><strong>Kontaktaufnahme</strong></font></td>
          </tr>
          <tr>
            <td width="55" align="right" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Name</font></td>
            <td width="250"><input name="Name" type="text" class="inputtext" size="40"></td>
          </tr>
          <tr>
            <td align="right" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">E-Mail</font></td>
            <td><input name="Email" type="text" class="inputtext" id="Email" size="40"></td>
          </tr>
          <tr>
            <td align="right" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Telefon</font></td>
            <td><input name="Telefon" type="text" class="inputtext" id="Telefon" size="40"></td>
          </tr>
          <tr>
            <td align="right" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Betreff</font></td>
            <td><input name="Betreff" type="text" class="inputtext" size="40"></td>
          </tr>
          <tr>
            <td align="right" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Nachricht</font></td>
            <td><textarea name="Nachricht" cols="40" rows="8" class="inputtextarea"></textarea></td>
          </tr>
          <tr>
            <td align="right"><input name="kopie" type="checkbox" id="kopie" value="checkbox"></td>
            <td>              <font size="2" face="Arial, Helvetica, sans-serif">Mir bitte ein Kopie der Nachricht zusenden</font></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>
              <input type="submit" class="inputbutton"  value="Absenden">
              <input name="ausgefllt" type="hidden" id="ausgefllt" value="1">
            </td>
          </tr>
        </table>
      </form>
<?php }
else
{
//Daten überprüfen
if (empty ($Name)) {  
    die ("<p class=\"inputbutton\"><br>Geben Sie bitte Ihren Namen ein<br><br>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&nbsp;&nbsp;&nbsp;&laquo;&laquo; zurück&nbsp;&nbsp;&nbsp;</A><br><br></p>");}
if (empty ($Email)) {  
    die ("<font face=\"Arial, Helvetica, sans-serif\" size=\"2\" color=red>Geben Sie bitte Ihre Emailadresse ein<br><br>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&nbsp;&nbsp;&nbsp;&laquo;&laquo; zurück&nbsp;&nbsp;&nbsp;</A><br><br></p>");}
if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$", $Email)) {
     die("<p class=\"inputbutton\"><br>Geben Sie bitte eine gültige Emailadresse an.<br><br>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&nbsp;&nbsp;&nbsp;&laquo;&laquo; zurück&nbsp;&nbsp;&nbsp;</A><br><br></p>");}
if (empty ($Betreff)) {  
    die ("<p class=\"inputbutton\"><br>Geben Sie bitte einen Betreff ein<br><br>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&nbsp;&nbsp;&nbsp;&laquo;&laquo; zurück&nbsp;&nbsp;&nbsp;</A><br><br></p>");}
if (empty ($Nachricht)) {  
    die ("<p class=\"inputbutton\"><br>Geben Sie bitte eine Nachricht ein<br><br>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&nbsp;&nbsp;&nbsp;&laquo;&laquo; zurück&nbsp;&nbsp;&nbsp;</A><br><br></p>");}


$Nachricht = stripslashes($Nachricht);
$Nachrichthtml = ereg_replace("\n", "<br>", $Nachricht);
$Betreff = stripslashes($Betreff);
$Telefon = stripslashes($Telefon);
$date = date("d.m.Y H:i:s");
echo "
<p><br><br>
<table width=\"400\"><tr><td class=\"inputtextarea\"  width=\"400\">
<FONT face=arial size=2>
Guten Tag, Frau/Herr <b>$Name</b>,
<br><br>
vielen Dank für Ihre Mitteilung!<br>
<p>
<FONT face=arial size=2><b>
Betreff: </b>$Betreff<br><br>
<b>Ihre Nachricht:</b><br>
$Nachrichthtml<br><br><br>

<HR NOSHADE SIZE=\"1\" WIDTH=\"400\" ALIGN=\"LEFT\">
<br><b>
<a href=\"javascript:history.go(-1);\" class=\"inputbutton\">
&laquo;&laquo; zurück</A>
</td></tr></table></center>";


// Formulardaten verschicken
$header = "From: $Name <$Email>\n";
$header .= "Reply-To: $Email\n";    
$header .= "Content-Type: text/plain";
mail("Meine Emailadresse", "Kontaktformular","
Folgende Nachricht wurde vom Kontaktformular
aus gesendet am $date
--------------------------------------------------------

Name:       $Name
Telefon:    $Telefon
Betreff:    $Betreff
Email:      $Email
Nachricht:
$Nachricht

$ip
--------------------------------------------------------
","$header");

//Bestätigungsemail an den Absender
if(isset($kopie))
{
$header1 = "From: Firmenpreise<Meine EMailadresse>\n";
$header1 .= "Reply-To: Meine Emailadresse\n";    
$header1 .= "Content-Type: text/plain";
mail("$Email","Rückmeldung Kontaktaufnahme", "
Guten Tag, Frau/Herr $Name,\n
vielen Dank für Ihren Besuch auf meiner Homepage!\n
---------------------------------------------\n
Folgende Nachricht ist bei mir eingegangen:\n
Ihr Name:       $Name
Ihre Email:     $Email
Ihr Telefon:    $Telefon
Ihr Betreff:    $Betreff
Ihre Nachricht:
$Nachricht\n
---------------------------------------------\n
Ich werde so schnell wie möglich die Frage beantworten.\n
Dies ist eine bei Eingang Ihrer Nachricht vom System automatisch
generierte Bestätigungs-Email.

mit freundlichem Gruß
Mein Name\n\n
","$header1");
}
}
?>      
    </td>
  </tr>
</table>
</body>
</html>
Ich hab nun gleich erstmal zwei Basketballspiele d.h. komme erst heut nachmittag gegen 17 Uhr wieder. Danach kann ich dir das aber Spam-fest machen ist kein Problem.

- Wenns bis dahin nich schon ein anderer erledigt hat Wink
Das wäre nett von dir
Hallo Greg, hast du mich vergessen?
Zitat: Hallo Greg, hast du mich vergessen?

Jap hab ich Biggrin

Nun setz ich mich aber mal ran Wink

Edit: Ich überleg gerade was nun am sinnvollsten wäre. Eine Möglichkeit (meiner Meinung nach eine gute Methode) wäre, eine Funktion einzubaun, die kurz prüft wie lange es vom betreten der Seite (des Formulars) bis zum Absenden des Formulars dauert. Ist dies in weniger als sagen wir mal 10 Sekunden passiert, kann man davon ausgehen dass ein Programm dahinter steckt und schlicht spammt. Ein "Mensch" kann natürlich weiterhin spammen, denn dieser braucht in der Regel länger um alle Felder auszufüllen und seine Nachricht zu schreiben.

Da wirds dann schon schwieriger. Man könnte nun so vorgehen, dass man schlicht verschiedene IP's sperrt. Das wäre garkein Problem. Am besten wäre es natürlich, wenn man diese Leute, die dir schonmal Spam-Emails geschickt haben, durch irgendetwas identifizieren könnte. Könntest du mir vll. mal Log Files oder die RFC Kopfzeilen der Mails zeigen? Damit käme man schon besser voran.

Ebenfalls sperren könnte man bestimmte Referer oder User Agents. Beides macht in bestimmten Fällen Sinn, wann genau muss man schaun.
Über das Kontaktformular soll an andere Adresse Spam versand worden sein? Headermanipulation oder Scriptmanipulation? Versteh spontan nicht wie über ein einseitg gerichtetes Script Nachrichten versand werden können. Da muss man ja die Zieladresse manipulieren können.

@edit: aso doch, ist ja relativ einfach das zu manipulieren wenn die global vars on sind.
und wenn du schon dabei bist, dann nimm doch anstatt der tabelle die entsprechenden sachen wie label für ein k-formular Wink
Tja, was haltet ihr von einer Code-Abfrage mit einem Bild? Also so wie in den neuesten Forenversionen eine vorhanden ist. Ein Bild mit einigen Buchstaben und Zahlen die der User eingeben muss und erst nach korrektem Code wird die Nachricht abgeschickt.

Auf jeden Fall Spam-Bot abwehrend.
wenn net..ich habe noch ne schöne ip sperre die nur 1 datei und kein mysql braucht^^....man muss sie nur includen und kann es einfach abfragem.....
ich weiss wzar das ihr das ausm stand könnt aber naja*gg*

Manche kopieren auch den Quelltext und specihern den.....und senden dann von da......vlt einfach mal die url überprüfen von wo man kommt? muss man 2x machen-> http:// und http://www.

MfG
Danke Blacksoul, also an das sollte auch so machbar sein Wink Aber sehr freundlich dass du das anbietest.

@Virus: Joa man könnte das so machen, ich hab da ja auch sooooo eine schöne Klasse geschrieben die sowas malen kann *stolz*. Aber es würde auch einfach ne .txt reichen mit ner IP Sperre Biggrin Halt nur eine Mail in einer Stunde oder so ^^
naja greg....man muss doch auch mal zeigen was man hat.....
habe die zwar net selber geschrieben sondern mir schreiben lassen, aber immerhin speichert die, die ips innerhalb ihrer datei ...sodass man kein chaos hat :-)

mfG
Seiten: 1 2 3
Referenz-URLs