[Tutorial] Website vor Spambots schützen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von teqnix, 1. März 2009 .

  1. 1. März 2009
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Website vor Spambots schützen​

    Bild


    Hi, in diesem Tutorial möchte ich euch einige meiner Tricks und Tipps zeigen, die dabei helfen, eure Website von Spambots sauber zu halten.
    Also los geht's.


    1. Bots via .htaccess blocken (Apache)
    Vorwort
    Eine sehr effektive Methode, um bekannte Spambots zu blocken.
    Falls ihr noch nicht mit .htaccess Dateien vertraut seit, solltet ihr euch das Apache Tutorial zu .htaccess Dateien und die mod_rewrite Dokumentation durchlesen.
    Eine ausführliche Liste von UserAgents findet ihr hier .

    Code für die .htacces Datei
    Erstellt eine Datei mit dem Namen .htaccess und kopiert folgendes hinein:
    Code:
    # Spambots blocken
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} ^217.81.214.* [OR]
    RewriteCond %{REMOTE_ADDR} ^63.99.(21[0-5]). [OR]
    RewriteCond %{HTTP_USER_AGENT} ia_archiver [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} discobot [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
    RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
    RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
    RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
    RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
    RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
    RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
    RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
    RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
    RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
    RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
    RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
    RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
    RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Image\ ****er [OR]
    RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
    RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
    RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
    RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
    RewriteCond %{HTTP_USER_AGENT} LinksManager.com_bot [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} linkwalker [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
    RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
    RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
    RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
    RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
    RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
    RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
    RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
    RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
    RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
    RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
    RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
    RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
    RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
    RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Web\ ****er [OR]
    RewriteCond %{HTTP_USER_AGENT} webalta [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
    RewriteCond %{HTTP_USER_AGENT} WebCollage [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
    RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
    RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
    RewriteCond %{HTTP_USER_AGENT} Yandex [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} zermelo [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^Zeus [NC, OR]
    RewriteCond %{HTTP_USER_AGENT} ZyBorg [NC]
    RewriteRule .* keine-bots.html [L]
    
    Die Datei ladet ihr nun auf euren Server.

    Erklärung
    RewriteEngine On stellt die RewriteEngine ein. Dieser Befehl muss vor jeder Rewriteanweisung stehen!
    RewriteCond %{REMOTE_ADDR} ^217.81.214.* sperrt 217.81.214.* aus.
    RewriteCond %{REMOTE_ADDR} ^63.99.(21[0-5]). [OR] sperrt 63.99.210.* bis 63.99.215.* aus.
    RewriteCond %{HTTP_USER_AGENT} ia_archiver [NC,OR] sperrt den UserAgent ia_archiver aus. NC steht für No Case, der Pattern ist nicht case-sensitive.
    RewriteRule .* keine-bots.html [L] leitet den Bot auf die Seite keine-bots.html weiter. Dort kann eine kurze Information stehen, dass die IP bzw. der UserAgent gesperrt ist. Das [L] steht für Last, also die Regel, welche der Apache beachtet.
    Alternativ kann man auch RewriteRule ^.* - [F,L] verwenden, was einen 403 Fehler (Zugriff verweigert) erzeugt.


    2. Sicherheitabfrage (Captchas) in Formularen
    Vorwort
    Wikipedia
    Offizielle Captcha Seite

    Code zum Einbau
    Ich verweise hier auf mein Tutorial Captchas generieren und überprüfen .

    Erklärung
    s. Tut


    3. Formularelemente manipulieren

    Vorwort
    Eine neue, effektive Methode: man erstellt mehrere Formularelemente vom Typ text, und macht sie via CSS unsichtbar. Den restlichen Elementen gibt man Namen wie Dnhefn4uz oder In74fsUs.

    Code
    PHP:
    <? php 
        
    if( $_POST [ 'homepage' ] !=  "" ) { die(); } else {
            
    verabreite_post_und_ab_in_DB ( $_POST );
        }
    ?>
    <form action="" method="POST">
    Dein Name: <input type="text" name="DnbrDAbn" value=""><br>
    Deine Email: <input type="text" name="ADFe6" value=""><br>
    Dein Eintrag: <input type="text" name="Sh6gAb" value=""><br>
    <input type="text" name="homepage" value="" style="display:none;">
    <input type="submit" name="submit" value="Eintragen">
    </form>
    Erklärung
    Der typische Spambot wir sich das Feld homepage raussuchen (was für einen normalen Besucher wegen style="display:none;" nicht sichtbar ist) und dort seinen Link reinschreiben und das Formular abesenden. Enthält $_POST['homepage'] einen Wert, so wird das Script gestoppt.


    4. Alternativer submit Button
    Vorwort
    Diese Methode verwirrt einige Spambots. Dabei gibt es im Formular einfach kein Element vom Typ submit, sonder eins vom Typ image.

    Code
    HTML:
    <form action="" method="POST">
    <input type="image" name="img" src="http://img23.imageshack.us/img23/1005/btnsubmitde.jpg">
    </form>
    
    Erklärung
    Einige Spambots überprüfen wohl nur, ob ein Element vom Typ submit exestiert. Ist dies nicht der Fall, lassen sie das Formular in Ruhe.



    Ich hoffe, ich konnte euch helfen und euer Wissen etwas bereichern =)
     
  2. 2. März 2009
    AW: [Tutorial] Website vor Spambots schützen

    ganz gut soweit, außer die manipulierten form felder. anti seo? würds für die usability nicht empfehlen! aber htaccess sollte standard sein!
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.