Fred Furunkelstein 2013: "bekannte Angreifer" abweisen

Beitrag lesen

Hi,
in robots.txt sperre ich einige meiner Seiten. Die böswilligen bots ignorieren dies offenbar. Alle jene in .htaccess auszuschleßen ist wohl vergebliche Liebesmühe. Gibt es aber umgekehrt eine Liste der "anständigen" Suchmaschinen, die man zulassen könnte?

Umgekehrt! Es gibt eine Liste angreifender/verseuchter Rechner. Die kann allerdings nie vollständig sein. Benutzung über die API:

http://www.blocklist.de/de/api.html

Nur die in den letzten 12 Stunden hinzugefügten IP-Adressen abrufen:

<?php  
$lastTime=12*60*24;  
if ($lastTime > 49999) {$lastTime=49999;} # max ist 49999  
$blocks=trim(file_get_contents("http://api.blocklist.de/getlast.php?time=$lastTime"));  
$blocks=explode("\n", $blocks);  
$blocks="\ndeny from " . implode("\ndeny from ", $blocks);  
$file=file_get_contents(".htaccess");  
$file=explode("### blocklist.de ###\n", $file);  
$file=$file[0] . "### blocklist.de ###" . $blocks;  
file_put_contents(".htaccess", $file);  
?>

* Dieses aller Stunden via Cronjob ausgeführt vermindert unnötigen Traffic. AVE: Überlege ob sich das lohnt!
* AVE! Sicherheit gibts aber woanders!(TM)
* Hast Du eine Firewall, die Du selbst konfigurierst, dann wirst Du hoffentlich wissen wie diese zu konfigurieren ist.

Alternativ kannst Du auch bei jedem Request die verschiednenen DNS-Server von blocklist.de befragen. Eine Lösung sähe so aus:

<?php  
function in_blocklist($ip) {  
        ### Benutzung:  
        # if (in_blocklist($_SERVER['REMOTE_ADDR'])) {  
        #       header("HTTP/1.0 403 Forbidden");  
        #       exit  
        # }  
        $tupel=explode('.', $ip);  
        $ip_query=implode('.', array_reverse(explode('.', $ip)));  
        $sys='host ' . $ip_query . '.all.bl.blocklist.de'; ### ggf anpassen ###  
        $antwort=trim(`$sys`).' ';  
        if (strpos($antwort, '127.0.0.')) {  
                return true;  
        } else {  
                return false;  
        }  
}  
  
# Test:  
# /*  
if (in_blocklist('91.232.96.27')) {  
        die ("91.232.96.27 ist in blocklist\n");  
} else {  
        die ("91.232.96.27 ist NICHT in blocklist\n");  
}  
# */  
?>

Auch hier sollte der Apache oder besser noch gleich die Firewall dazu gebracht werden, weitere Zugriffsveruche zu unterbinden.

AVE! Auf die mögliche Verzögerung beim Abruf der Seiten weise ich hin. Bitte lese auch die Hinweise bei blocklist.de zur Nutzun.