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

  • Helmuth74
    hat ein Thema erstellt SPAMer oder Hacker? Was kann ich dagegen tun?.

    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:

  • SvenLittkowski
    antwortet
    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

    Einen Kommentar schreiben:


  • Andreas
    antwortet
    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']++;
    }

    ?>

    Einen Kommentar schreiben:


  • LA-Finest
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Helmuth74
    antwortet
    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

    Einen Kommentar schreiben:


  • Helmuth74
    antwortet
    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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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.

    Einen Kommentar schreiben:


  • Helmuth74
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X