Ankündigung

Einklappen
Keine Ankündigung bisher.

gehackte Formulare

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gehackte Formulare

    Seit einiger Zeit werden irgendwie meine Formulare "gehackt".

    Die an mich gesendeten eMails sollten normalerweise so aussehen:

    Name: vorname nachname
    Wohnort: wohnort
    eMail: email
    Nachricht: nachricht
    ----------------------------------------
    Datum und Uhrzeit : 12.02.2006 - 02:40
    IP-Adresse des Absenders : 80.139.81.231
    Und die Mails der "gehackten" Formulare sehen so aus:

    Name: s Content-Type: multipart/alternative; boundary=3adcd8fa575c64bbb560dc2123a241c9
    MIME-Version: 1.0
    Subject: him an he ll call th bluff ve been makin
    bcc: bajfla2@aol.com

    This is a multi-part message in MIME format.

    --3adcd8fa575c64bbb560dc2123a241c9
    Content-Type: text/plain; charset=\"us-ascii\"
    MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit

    more and more into the ship. einrich thrust his arm through the cabin window, he grasped about in the water within suddenly he caught hold on
    --3adcd8fa575c64bbb560dc2123a241c9--
    . over1731@your-photo.net
    Wohnort: over1731@your-photo.net
    eMail: over1731@your-photo.net
    Nachricht: over1731@your-photo.net
    ----------------------------------------
    Datum und Uhrzeit : 14.04.2006 - 07:32
    IP-Adresse des Absenders : 202.58.86.3

    Die IP-Adressen dieser mysteriösen Absender sind auch IMMER unterschiedlich.


    Hier mal ein kleiner mini-Auszug aus dem Script:
    PHP-Code:
    if(isset ($_GET['action']) AND $_GET['action'] == "send")
    {
             
    div Feldabfragenob ausgefüllt oder nichtetc...
             
             
    dann der eigentliche Mailversand    
    }
    ?> 

    Dann hab ich mir gedacht, machste doch mal nen http-referer rein, also:
    PHP-Code:
    if(isset ($_GET['action']) AND $_GET['action'] == "send" AND $_SERVER['HTTP_REFERER'] = "http://www.your-photo.net/blabla")
    {
             
    div Feldabfragenob ausgefüllt oder nichtetc...
             
             
    dann der eigentliche Mailversand    
    }
    ?> 
    Aber immer noch kommen alle 2-3 Tage bestimmt 10-12 eMails dieser Art an.
    Und an dieses Tagen, wo auch die ganzen Mails kommen, steigt mein Counter an diesem Tag auch immer auf schlappe 17.000 Besucher an. Das ist (zumindest auf meiner Seite) sehr unrealistisch.

    Wer kann mir helfen, die Formulare sicher zu machen?!

    Ich danke euch schon mal im Voraus.

    LG, Sebastian

  • #2
    Solltest nen Captcha einbauen.

    Kommentar


    • #3
      Das wäre eine Möglichkeit. Finde das ist für den User lästig und sieht zudem auch sch... aus
      Gibt es denn noch ne andere Möglichkeite, ohne Captcha? Und wieso ist das mit dem http-referer denn nicht sicher?

      Kommentar


      • #4
        Warum ist es schlecht, mit dem Referer zu arbeiten?

        Anscheinend ist es wohl ein Bot der dir lauter Spammails schickt, solche kannste wirksam nur mit nem Captcha ausschliesen.

        Ansonstne könnte ich mir vorstellen das dein Skript auch nicht ganz ok ist weil wenn so komische Dinge ankommen ist vlt irgendwas falsch.

        Verwendest du den PHP Mailer?

        Kommentar


        • #5
          Also mein eMail versand sieht so aus:
          PHP-Code:
          <?php
              $msg_time        
          date('d.m.Y - H:i');
                      
          $ip_adresse        $_SERVER['REMOTE_ADDR'];
                      
          $msg_empfaenger "info@your-photo.net";
                      
          $msg_absender    "From: your-photo-Website<info@your-photo.net>";
                      
          $msg_betreff    "your-photo";
                      
          $msg_inhalt        "blaText\n\n\n----------------------------------------\n\nDatum und Uhrzeit           : $msg_time\nIP-Adresse des Absenders    : $ip_adresse";

                      
          // Mailversand
                      
          mail($msg_empfaenger,$msg_betreff,$msg_inhalt,$msg_absender);
                      
                      echo 
          "
                      <script language=\"javascript\">
                      function successmsg() {
                          alert(\"Vielen Dank für Deine Nachricht.\");

          ?>

          Kommentar


          • #6
            Sicher das diese Emails auch von diesem Formular abgeschickt werden?

            Kommentar


            • #7
              Ich wüsste nicht, wie die sonst abgeschickt werden sollten... Also zumindest ist das das einzige Kontakt-Script, dass ich auf meiner Seite habe...

              Wobei ich auch noch ein kleines Formular für meinen Newsletter habe... Auch da kommen solche komischen Mails an.

              Kommentar


              • #8
                Spammails? Ne Email kann von überall kommen nicht nur von deinem Kontaktskript.

                Kommentar


                • #9
                  Ja gut, aber bin mir schon sicher... Zumal die Versendezeit aus der Mail (die ich mir ja immer mitschicken lasse) mit der tatsächlichen Versendezeit überinstimmt...

                  Und wieso sollten Spammails die Spezifikationen meines Online-Formulars verwenden, wenn sie nicht auch über dieses versendet werden.

                  Kommentar


                  • #10
                    Aber wie soll den der Text so abgeändert werden? Dann kanns nur daran liegen das du die Eingabedaten nicht richtig überprüfst.

                    Kommentar


                    • #11
                      Also, hier dann mal das komplette Versendescript:
                      PHP-Code:
                      <?
                      //--- Mail-Versand
                      if(isset ($_GET['action']) AND $_GET['action'] == "send" AND $_SERVER['HTTP_REFERER'] = "http://www.your-photo.net/blabla")
                      {
                              $alle_felder    = array("name","wohnort","email","alter","termin","bemerkung");
                              $pflichtfelder    = array("name","wohnort","email","alter","termin");
                          
                              for($i=0;$i<=count($alle_felder);$i++)
                              {
                                  $formularfeld = $alle_felder[$i];
                                  if(in_array($formularfeld,$pflichtfelder))
                                  {
                                      // Überprüfung Formularfelder außer "Email"
                                      if(trim($$formularfeld) == "" & $formularfeld <> "email")
                                      {
                                          $form_okay = "no";
                                          $warning .= "Das Feld ".$formularfeld." darf nicht leer sein!\\n";
                                      }
                                      // Überprüfung Formularfeld Email"
                                      if($formularfeld == "email")
                                      {
                                          if(!ereg(".+@.+\..",$email))
                                          {
                                              $form_okay = "no";
                                              $warning .= "Das Feld ".$formularfeld." enthält keine gültige E-Mail-Adresse!\\n"; 
                                          }
                                      }
                                  }
                              }
                              
                              if($_POST['infos'] != ""){ $newsletter = "ja"; }
                              if($_POST['infos'] == ""){ $newsletter = "nein"; }

                              if($form_okay != "no")
                              {
                                  $msg_time        = date('d.m.Y - H:i');
                                  $ip_adresse        = $_SERVER['REMOTE_ADDR'];
                                  $msg_empfaenger = "info@your-photo.net";
                                  $msg_absender    = "From: your-photo-Website<info@your-photo.net>";
                                  $msg_betreff    = "your-photo - Bewerbung";
                                  $msg_inhalt        = "emailtext\n\n\n----------------------------------------\n\nDatum und Uhrzeit           : $msg_time\nIP-Adresse des Absenders    : $ip_adresse";

                                  // Mailversand
                                  mail($msg_empfaenger,$msg_betreff,$msg_inhalt,$msg_absender);
                                  
                                  echo "
                                  <script language=\"javascript\">
                                  function successmsg() {
                                      alert(\"Vielen Dank für Deine Nachricht.\");
                                  }
                                  window.setTimeout(\"successmsg()\",400);
                                  
                                  </script>
                                  <meta http-equiv=\"refresh\" content=\"1;URL=blabla\">";
                              }
                              // Formualar ist nicht in Ordnung, wird also nicht versendet
                              if ($form_okay == "no")
                              {
                                  echo "
                                  <script language=\"javascript\">
                                  function errormsg() {
                                      alert(\"Leider hast Du noch einige Pflichtfelder offen gelassen.\\nDeine Nachricht wurde daher noch nicht versendet.\\n\\n".$warning."\");
                                  }
                                  window.setTimeout(\"errormsg()\",400);
                                  </script>";
                              }
                          
                      }
                      ?>
                      Im ersten Teil wird überprüft, ob die Pflichfelder ausgefüllt sind, oder nicht...
                      Nachdem ich den referer eingebaut habe, hatte ich auch erstmal für ein paar Tage Ruhe... Aber dann fing es wieder an...

                      Da fällt mir auf... Sollte ich die Variablen evtl. expliziet mit $_POST abrufen? Denn ich hab die jetzt einfach nur ohne $_POST verwendet.

                      Könnte es vielleicht sogar daran liegen?

                      Kommentar


                      • #12
                        Keine Ahnung was du überhaupt mit deinem Skript bewirken willst da du ja eigentlich in der Email diese ganzen DatenName Wohnort Email etc garnicht mitsendest. Daher hab ich überhaupt keine Ahnung was das ganze Skript bringt. Auch deine Fehlerüberprüfung mit den Schleifen kommt mir komisch vor.

                        Warum überprüfst du nicht einfach

                        if (empty($_POST['name'])) ... jeden Wert usw. und dann noch ob vlt Schadcode oder sonstwas drinnen steck.t

                        Kommentar


                        • #13
                          ja, den eigentlichen text, der in der variable "$msg_inhalt" steht, habe ich hier durch das wort emailtext abgekürzt, da dieser hier ja nicht wirklich relevant ist.

                          Die "Fehlerüberprüfung" ist deshalb sinnvoll, da ich mir am Ende des Scriptes ein Fenster öffnen lasse, in dem entweder drin steht, welche Felder noch nicht ausgefüllt sind oder das die Mail erfolgreich versendet wurde

                          Kommentar


                          • #14
                            Die Fehlerüberprüfung ist sogar sehr wichtig vorallem dass du sie richtig machst. Sonst könnte jemand eben Schadcode eingeben und der verhunzt dann immer die Emails.

                            Kommentar


                            • #15
                              Ja, das hab ich auch gemacht...
                              Aber warum bekomme ich denn nun immer diese blöden eMails?
                              Oder ist im Script doch noch eine Sicherheitslücke?

                              Kommentar

                              Lädt...
                              X