Einzelnen Beitrag anzeigen
  #7 (permalink)  
Alt 05-03-2010, 00:55
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Dass du keinen Referer findest, liegt daran, dass du die "böse Domain" direkt in den Browser getippt hast. Das macht außer dir sicherlich niemand.

Aber vergiss das mit dem Referer wieder. Wenn die "böse Domain" nur aus dieser Weiterleitung besteht, wirst du sie nie in einem Referer finden, denn man kann auf dieser Domain keine Seite aufrufen, die der Browser als Referer setzen könnte.
Da steht dann sowas wie google.de drin oder irgendeine andere Seite, die mit der "bösen" nicht zwangsläufig kollaboriert.

Aber du hast ja die ganzen REDIRECT_* Keys in $_SERVER. Die sind doch sicherlich nur dann gesetzt, wenn man deine Seite über eine Weiterleitung betritt. Also kannst du diese Keys nutzen - wenn sie da sind, blockierst du den Request.
Natürlich kann dann niemand mehr auf deine Seite weiterleiten, nicht mal du selbst (intern). Insofern ist das ein Schrotschuß, aber vielleicht kannst du damit leben.

Code dazu könnte so aussehen:
PHP-Code:
if (isset($_SERVER['REDIRECT_URL']) // es ist eine Weiterleitung
&& (!isset($_SERVER['HTTP_REFERER']) // und kein Referer oder Referer enthält nicht die eigene Domain
    
|| parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) != $_SERVER['SERVER_NAME'])) { 
    die(
'Weiterleitungen auf diese Seite sind nicht erwünscht.');


Geändert von onemorenerd (05-03-2010 um 00:59 Uhr)
Mit Zitat antworten