User mittels Referer blocken

Die Ideee hinter dem Referer Blocker ist ganz einfach: Ankommende User werden mittels Referer Checks identifiziert, um deren Anfrage entsprechend behandeln zu können. In diesem speziellen Falle sollten User, die von bekannten Spam und Malware Seiten kommen, nicht zugelassen werden.

Vorteile: Einfach mittels PHP umzusetzen. Wirkt für unbedarfte Benutzer wie ein falsch gesetzter Link.

Nachteile: Noch einfacher zu umgehen als die zwangsweise eingeführten Stop Schilder der Bundesregierung. Funktioniert nur, wenn Benutzer mittels Links navigieren. Bei manueller Eingabe der URL in den Adressleiste des Browser schlägt der Check fehl.

Das Skript:

$referer_file = __DIR__ . '/block-referer.txt';
if(!file_exists($referer_file)) {
    return;
}

// Scan for referer's and bounce appropriately
if (isset($_SERVER["HTTP_REFERER"])) {
    $ref = trim($_SERVER["HTTP_REFERER"]);
    if(strlen($ref) > 0) { 
        $spammers = file($referer_file);
        foreach ($spammers as $site) {
            $site = trim($site);
            if (strlen($site) == 0) {
                continue; // Eliminate empty lines
            }
            $pattern = "/$site/i";
            if (preg_match ($pattern, $ref)) {
                header("Location: $ref"); exit();
            }
        }
    }
}

Die Datei „block-referer.txt“ ist die Blacklist, hier wird pro Zeile eine Referer URL angegeben. User die von einer aufgefürten Seite kommen, werden dorthin zurückgeleitet:

red-dir-cgpay-0307.com
r2606.com
www.vp888.net
future-2000

Der Beispiel Code ist ausgesprochen einfach gestrickt. So bietet sich z.B. das setzen eines Cookies und/oder einer Session Variable an, um den User auch später effektiver abwehren zu können. Das Skript lässt sich aber auch prima abwandeln und dazu nutzen, Usern unterschiedliche Inhalte anzuzeigen, so könnte man Usern die von einer Social News Seite kommen, deren zugehörigen Voting Button anzeigen. Ihr könntet „böse“ User aber auch einfach zu Google schicken oder auf eine Landingpage die auf die Gefahren der zuvor besuchten Seite hinweist.