Ankündigung

Einklappen
Keine Ankündigung bisher.

SPAMer oder Hacker? Was kann ich dagegen tun?

Einklappen

Neue Werbung 2019

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

  • SPAMer oder Hacker? Was kann ich dagegen tun?

    Hallo!

    Damit Kunden mit mir in Kotankt treten können habe ich sowas wie einen kleinen WebMailer geschrieben. Der hat auch lange wunderbar funktioniert - doch auf einmal bekomme ich am Tag bis zu 50 leere Mails oder Mails mit einem verstümmelten HTML-Code zugestellt.

    Ich logge immer die IP-Adressen der "Absender" mit und habe festgestellt, dass oft immer wieder die gleichen Adressen auf mein PHP-Script zugreifen.

    Mein Verdacht liegt darin, dass hier jemand meinen Server attackiert...

    Aber egal - was soll/kann ich machen, damit mein Script wieder "normal" funktioniert bzw. wie könnte ich das Script absichern?

    Witzig ist auch, obwohl ich das Script unbenannt und die Verlinkungen aus meinen HTML-Seiten herausgenommen habe TROTZDEM noch auf das Script zugegriffen wird!

    Hier mal der Code.

    Code:
    <?php 
    $ip=getenv("REMOTE_ADDR");
    $stempel=gmdate("M d Y H:i:s", time());
    
    $Name = $_POST["Name"];
    $Telefon = $_POST["Telefon"];
    $eMail = $_POST["eMail"];
    $Betreff = $_POST["Betreff"];
    $Nachricht = $_POST["Nachricht"];
    
    $fp1 = popen ("c:\\sendmail\\sendmail.exe -t","w"); 
    fwrite ($fp1,"Subject: $Betreff 
       From: Meine Adresse <Meine.Adresse@meine.Firma.at>
       To: Ziel.Adresse@meine.Firma.at
    
       Name: $Name
       Telefon: $Telefon
       eMail-Adresse: $eMail
       $linie1  
       Nachricht:\n
       $Nachricht
       "); 
    pclose ($fp1);
    ?>
    Bin für jeden Tipp und Ohrfeige bereit :wink:

  • #2
    Bevor ihr mich schimpft...
    Ich habe nach meinem Problem gegooglt und in den NGs nachgesehen - aber für mich nix brauchbares gefunden.

    Hier im Forum hab ich zwar was ähnliches? gefunden, kann aber auch nix damit anfangen, da ich mir noch zu hoch ist.... sorry falls ich hier das Problem "SPAM" nochmals aufkoche

    Kommentar


    • #3
      Hi, ich hab vor 3 Tagen mit PHP angefangen aber ich denke ich kenne die Lösung des Problems:

      PHP-Code:
      <?php
       
      $ip
      =getenv("REMOTE_ADDR"); 
      $stempel=gmdate("M d Y H:i:s"time()); 

      $error=0;



      $Name $_POST["Name"]; 
      $Telefon $_POST["Telefon"]; 
      $eMail $_POST["eMail"]; 
      $Betreff $_POST["Betreff"]; 
      $Nachricht $_POST["Nachricht"]; 

      if(empty(
      $Nachricht)) {
      $error=1; }
      if(empty(
      $Name)) {
      $error=1; }
      if(empty(
      $Betreff)) {
      $error=1; }

      If(
      $error==0) {

      $fp1 popen ("c:\\sendmail\\sendmail.exe -t","w"); 
      fwrite ($fp1,"Subject: $Betreff 
         From: Meine Adresse <Meine.Adresse@meine.Firma.at> 
         To: [email]Ziel.Adresse@meine.Firma.at[/email] 

         Name: 
      $Name 
         Telefon: 
      $Telefon 
         eMail-Adresse: 
      $eMail 
         
      $linie1  
         Nachricht:\n 
         
      $Nachricht 
         "
      ); 
      pclose ($fp1); 

      }

      else {
      echo 
      "Bitte überprüfen sie ihre Angaben.";
      }
      ?>
      Also, was wir hier tun ist:
      Wir erzeugen eine Variable namens Error, und geben ihr einen Wert (0).
      Dann fragen wir ab ob die wichtigen Felder gefüllt sind, wenn nicht bekommt die Variable Error den Wert 1.
      Zu guter letzt erstellen wir eine schleife die guckt ob error = 0 ist, wen ja sendet er die Email, wenn nicht wird eine Fehlermeldung ausgegeben.

      Du darfst den Code so übernehmen wenn du willst.

      Achja, an deiner stelle würde ich deine Email Adresse die du auf der Page hast per include Datei machen, damit sogenannte "Harvester" (programme die den SeitenQuelltext nach Email adressen absuchen um sie zu zuspammen) die nicht finden. Das würde dann so aussehen:

      PHP-Code:
      <?php
       
      include("#meine_Email.inc");

      $ip=getenv("REMOTE_ADDR"); 
      $stempel=gmdate("M d Y H:i:s"time()); 

      $error=0;



      $Name $_POST["Name"]; 
      $Telefon $_POST["Telefon"]; 
      $eMail $_POST["eMail"]; 
      $Betreff $_POST["Betreff"]; 
      $Nachricht $_POST["Nachricht"]; 

      if(empty(
      $Nachricht)) {
      $error=1; }
      if(empty(
      $Name)) {
      $error=1; }
      if(empty(
      $Betreff)) {
      $error=1; }

      If(
      $error==0) {

      $fp1 popen ("c:\\sendmail\\sendmail.exe -t","w"); 
      fwrite ($fp1,"Subject: $Betreff 
         From: Meine Adresse <Meine.Adresse@meine.Firma.at> 
         To: 
      $Meine_Mail 

         Name: 
      $Name 
         Telefon: 
      $Telefon 
         eMail-Adresse: 
      $eMail 
         
      $linie1  
         Nachricht:\n 
         
      $Nachricht 
         "
      ); 
      pclose ($fp1); 

      }

      else
      echo 
      "Bitte überprüfen sie ihre Angaben.";
      ?>



      //Die Include Datei:
      <?
      $Meine_Mail="MeineMail@MeineFirma.de";
      ?>
      Die Raute (#) im Namen der Includedatei, hat den Zweck das man nicht auf die Inlude Datei direkt zugreifen kann, da das Raute Zeichen auch als sprungmarke im Browser angegeben wird, das heisst wenn jetzt jemand auf: www.deineFirma.at/#meine_email.inc
      geht wird der Browser die Seite nicht anzeigen können da er versucht zu'r sprungmarke zu springen die nicht existiert.

      Kommentar


      • #4
        Danke LJ_1102.
        Deine Idee klingt logisch und verständlich für mich
        Werde das Script gleich umschreiben und die Sache weiter beobachten ...

        lG Helmuth

        Kommentar


        • #5
          Sorry - aber ich bekomm eine Fehlermeldung...

          Wenn ich alle Form-Felder ausgefüllt habe sagt mir mein Browser:

          Notice: Undefined variable: error in D:\Web-Server\Apache2\htdocs\Sekretariat\Mail\mssekre.php on line 66


          PHP-Code:
          <?php

          $ip
          =getenv("REMOTE_ADDR");  
          $stempel=gmdate("M d Y H:i:s"time());  

          $error=0



          $Name $_POST["Name"];  
          $Telefon $_POST["Telefon"];  
          $eMail $_POST["eMail"];  
          $Betreff $_POST["Betreff"];  
          $Nachricht $_POST["Nachricht"];  

          if(empty(
          $Nachricht)) { 
          $error=1; } 
          if(empty(
          $Name)) { 
          $error=1; } 
          if(empty(
          $Betreff)) { 
          $error=1; } 

          If(
          $error==0) {             // <==== Diese Zeile ist 66 !!

          $fp1 popen ("c:\\sendmail\\sendmail.exe -t","w");  
          fwrite ($fp1,"Subject: $Betreff  
             From: Meine Adresse <Meine.Adresse@meine.Firma.at>  
             To: [email]Ziel.Adresse@meine.Firma.at[/email]  

             Name: 
          $Name  
             Telefon: 
          $Telefon  
             eMail-Adresse: 
          $eMail  
             
          $linie1   
             Nachricht:\n  
             
          $Nachricht  
             "
          );  
          pclose ($fp1);  



          else { 
          echo 
          "Bitte überprüfen sie ihre Angaben."


          ?>
          Was ist hier falsch? Danke und lG Helmuth

          Kommentar


          • #6
            Ubs - Sorry - Hab eine Zeile vergessen einzutragen .. es ist eh alles OK!

            Kommentar


            • #7
              versuchs mal so:

              PHP-Code:
              <?php


              if(empty($Nachricht)) {  
              $error='1'; }  
              elseif(empty(
              $Name)) {  
              $error='1'; }  
              elseif(empty(
              $Betreff)) {  
              $error='1'; }  
              else
              $error='0';

              ?>
              keine garantie obs funzt.

              gruß la-finest
              Eine Programmiersprache kann man nicht perfekt beherrschen,
              nur gut.
              Ansonsten hätte man sie erfunden!

              www.bazubi.com/forum --> allgem. IT-Forum

              Kommentar


              • #8
                Nimm einfach ne Session...

                PHP-Code:
                <?php
                session_start
                ();

                // Anzahl erlaubter E-Mails
                $emails 3;

                if(!isset(
                $_SESSION['emails'])) 
                    
                $_SESSION['emails']=0;
                    
                    
                if(
                $_SESSION['emails']>=$emails) {
                    
                ?>Ihre E-Mail wurde bereits versendet!<?
                } else {

                    $ip=getenv("REMOTE_ADDR"); 
                    $stempel=gmdate("M d Y H:i:s", time()); 

                    $Name = $_POST["Name"]; 
                    $Telefon = $_POST["Telefon"]; 
                    $eMail = $_POST["eMail"]; 
                    $Betreff = $_POST["Betreff"]; 
                    $Nachricht = $_POST["Nachricht"]; 

                    $fp1 = popen ("c:\\sendmail\\sendmail.exe -t","w"); 
                    fwrite ($fp1,"Subject: $Betreff 
                       From: Meine Adresse <Meine.Adresse@meine.Firma.at> 
                       To: [email]Ziel.Adresse@meine.Firma.at[/email] 

                       Name: $Name 
                       Telefon: $Telefon 
                       eMail-Adresse: $eMail 
                       $linie1  
                       Nachricht:\n 
                       $Nachricht 
                       "); 
                    pclose ($fp1);
                    $_SESSION['emails']++;
                }

                ?>
                Tutorials zum Thema Technik:
                https://pilabor.com
                https://www.fynder.de

                Kommentar


                • #9
                  Hallo.

                  Du benutzt einen Windows-Server? Probiere doch zuallererst, die .exe-Datei umzubenennen, damit die (automatischen?) Spammer nicht mehr auf den ihnen bekannten Dateinamen zugreifen können.

                  Ansonsten in der Tat nur beschriebene Mails versenden (siehe LA-Finest).

                  Und vieleicht außerdem Captchas (im Internet recherchieren) einsetzen, die machen den meisten Spammern den Gar aus.

                  Sven
                  sigpic
                  Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
                  Sven

                  Kommentar

                  Lädt...
                  X