[PHP] Spammer / Nervensägen aus dem Gästebuch für immer bannen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Garfield7, 10. Januar 2011 .

  1. 10. Januar 2011
    Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Hallo liebe Damen und Herren,
    ich suche eine möglichkeit andere Leute aus meinem komplettem Gästebuch zu bannen. Wie ich erfahren habe, kann man das am besten mit Cookies machen. Nun die frage, weiss jemand wie man ein Cookie machen kann, dass einen User für immer aus der und der Seite aussperrt?

    (Dass sozusagen das Cookie den Zugriff auf mein Gästebuch verhindert)

    MfG

    Edit: PHP und HTML sind also auswahl möglich! (Homepage besteht 50% aus PHP und 50% aus HTML)
     
  2. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    cookie is schwachsinn, ich denke du meinst captcha.

    recaptcha

    kinderleichte api
     
  3. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Weisst du, es geht eben darum, dass ich heute über 50 blöde Kommentare löschen durfte. Und da will ich jetzt einen Schlussstrich ziehen. Wie? Indem ich sie möglichst Dauerhaft bannen will.
     
  4. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    achso du willst echte menschen banne, das is was anderes. da helfen cookies aber auch nciht wirklich, weil man die nach belieben selbst löschen kann.

    am besten du baust eine e-mail bestätigung ein und bannst dann nach und nach die idioten anhand ner blacklist. damit bekommst du die leute dauerhaft weg. ansonsten hilft meist "drüber stehen und kommentarlos löschen" auch schon bei vielen.

    um leute mit einem cookie zu bannen müsstest du ja schon beim posten wissen das der jenige gebannt werden soll.
     
  5. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Das Zombie-Cookie | heise online

    Kann man so was nicht effizient umsetzen? Das Ding würden die meisten 0815 Spammer net so leicht weg bekommen.
     
  6. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    ich hab mir mal ne spam liste angelegt mit schlagwörter,
    die nicht in formularen vorkommen dürfen.

    wenn du nun laut murdoc weißt, welche email adresse spam verursacht,
    musst du diese adresse nur in die liste eintragen.
    schon wird das formular nicht ausgeführt.
    ein captcha hilft auch noch.

    sowas in der art mit email bestätigung sollte helfen.
     
  7. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    hast du auch den Code bereit, oder hast eine quelle, wo ich den code finden kann?
     
  8. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Wie gesagt entweder captcha oder userrating, sodass wenn 3 Leute sagen das der jeweilige Beitrag unter dem Niveau liegt er ausgeblendet wird oder wohl das einfachste einfach alle Beiträge manuell freigeben..
     
  9. 10. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Schutzmaßnahmen:

    • IP Zeitsperre
      (Eine Sperrung der IP für z.b. 60sek kann den Spam bereits massiv reduzieren.)
    • IP Sperre (24h)
      (Problem bei mehreren Leuten in einem Netzwerk z.b. Internet-Café))
    • Cookie Sperre
      (Lassen sich löschen)
    • Captcha
      (Bei reCAPTCHA muss man 2 Worte eingeben, sehr effektiv würde ich meinen.)
    • Badword Filter
      (Keine Zensur sondern auf Spamliste stellen.)
    • Moderiert
      (Jeder Eintrag muss von dir Freigeschaltet werden.)

    Diese Maßnahmen lassen sich Frei miteinander verbinden
     
  10. 11. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    hier mal auf die schnelle
    PHP:
    <? php

    class  spamClass  {
        public 
    $formAr ;
        public 
    $badWordAr ;
        
        public function 
    badWord  (){
            foreach(
    $this -> formAr  as  $fkey  =>  $fval ){
                foreach(
    $this -> badWordAr  as  $bkey  =>  $bval ){
                    if(
    strstr ( $_POST [ $fval ],  $bval )){
                        return 
    false ;
                    }    
                }
            }
            return 
    true ;
        }
    }
    $_POST [ 'form1' ] =  'xx_x_' ;
    $_POST [ 'form2' ] =  'name@domain.de' ;
    $_POST [ 'form3' ] =  'irgendwas' ;

    $check  = new  spamClass ();
    $check -> formAr  = array( 'form1' 'form2' 'form3' );
    $check -> badWordAr  = array( 'xxx' '♂️♀️' 'name@mail.de' '@domain' );
    $bad  $check -> badWord ();

    if (
    $bad ){
        die(
    'alle ok' );    
    }else {
        die(
    'spam' );    
    }

    ?>
     
  11. 12. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Könntest du mir da mal die codes geben? (das Moderiert kannste weglassen.)

    Hallo onip,
    bei mir funktioniert das nicht ganz. Fehler in Zeile 21 (if(strstr($_POST[$fval], $bval)){)

    MfG

    PS: Mal ein beispiel für dich:
    Wenn in '$message' das Wort '*****loch' vorkommt, script abbrechen und Meldung ausgeben: 'Ausdrücke sind nicht erlaubt. Eintrag wurde nicht erstellt.'
     
  12. 12. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    IP Sperre (Zeit kann man ja beliebig einstellen)

    Cookie Sperre (weiter unten stehen Beispiele)

    recaptcha




    Ist $_POST den deklariert? Den "Empty delimiter in" sagt aus das die Variable leer ist.

    Spoiler
    Spezialgebiet: Homepage (PHP, HTML, MySQL)
     
  13. 12. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    [Bensen] $_POST ist immer deklariert, in diesem fall wird wohl der index "$fval" (aus der foreach-schleife) gleich NULL oder FALSE sein.
     
  14. 12. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    klappt doch wunderbar
    PHP:
    <? php

    class  spamClass  {
        public 
    $formAr ;
        public 
    $badWordAr ;
        
        public function 
    badWord  (){
            foreach(
    $this -> formAr  as  $fkey  =>  $fval ){
                foreach(
    $this -> badWordAr  as  $bkey  =>  $bval ){
                    if(
    strstr ( $_POST [ $fval ],  $bval )){
                        return 
    false ;
                    }    
                }
            }
            return 
    true ;
        }
    }

    if (isset(
    $_POST [ 'send' ])){
        
    $check  = new  spamClass ();
        
    $check -> formAr  = array( 'vname' 'nname' 'email' );
        
    $check -> badWordAr  = array( 'xxx' '♂️♀️' 'name@mail.de' '@domain' );
        
    $bad  $check -> badWord ();
        if (
    $bad ){
            die(
    'alle ok' );    
        }else {
            die(
    'spam' );
        }
    }
    ?>

    <form action="" method="post">
        <div>Vorname<br /><input type="text" name="vname" value="" /></div>
        <div>Nachname<br /><input type="text" name="nname" value="" /></div>
        <div>Email<br /><input type="text" name="email" value="" /></div>
        <div><input type="submit" name="send" /></div>
    </form>
     
  15. 14. Januar 2011
    AW: Spammer / Nervensägen aus dem Gästebuch für immer bannen

    Bei dir ... (Meldung kommt nach dem klick auf Eintragen)

    Kannst du ja mal selbst anschauen ... http://www.ls-uswmodding.de/gastebuch.php

    PHP:
    <? php
                    
    class  spamClass  {
                        public 
    $formAr ;
                        public 
    $badWordAr ;

                        public function 
    badWord  (){
                            foreach(
    $this -> formAr  as  $fkey  =>  $fval ){
                                foreach(
    $this -> badWordAr  as  $bkey  =>  $bval ){
                                    if(
    strstr ( $_POST [ $fval ],  $bval )){
                                        return 
    false ;
                                    }
                                }
                            }
                            return 
    true ;
                        }
                    }

                    
    $ip  $_SERVER [ "REMOTE_ADDR" ];
                    
    $neueintrag  $_POST [ "neueintrag" ];
                    
    $name  $_POST [ "name" ];
                    
    $email  $_POST [ "email" ];
                    
    $homepage  $_POST [ "homepage" ];
                    
    $message  $_POST [ "message" ];
                    
    $datum  date ( "d.m.Y, H:i:s" );

                    if (isset(
    $_POST [ 'neueintrag' ])){
                        
    $check  = new  spamClass ();
                        
    $check -> formAr  = array( 'message' 'name' 'email' );
                        
    $check -> badWordAr  = array( ':poop:' '♂️♀️' '' ':crazy:' );
                        
    $bad  $check -> badWord ();
                        if (
    $bad ){
                            die(
    'alles ok' );
                            
    $id  time ();
                            
    $name  addslashes ( $name );
                            
    $email  addslashes ( $email );
                            
    $homepage  addslashes ( $homepage );
                            
    $message  addslashes ( $message );
                            
    $sqlkommando  "INSERT INTO guestbook (id, name, email, homepage, message, datum, ip) VALUES (' $id ', ' $name ', ' $email ', ' $homepage ', ' $message ' , ' $datum ' , ' $ip ')" ;
                            
    mysql_query ( $sqlkommando ) or die( "Error: "  mysql_error ());
                            echo 
    "<br><br> Eintrag erfolgreich hinzugefügt! <br><br>" // Bestätigung ausgeben
                        
    }else{
                            echo 
    "Der Eintrag wurde nicht hinzugefügt, weil einige nicht erlaubte Worte in deinem Gästebucheintrag waren." ;
                            exit;
                        }
                    }
    ?>
    (PHPcode wurde gekürtzt, sprich connectdaten wurden weggelassen)
     
  16. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.