Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP: Host aus URL filtern?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Babelfisch
PostRank 5
PostRank 5
Beiträge: 204
Registriert: 05.10.2005, 14:15
Wohnort: Leipzig

Beitrag von Babelfisch » 30.10.2005, 19:01

Airport1 hat geschrieben:Nicht immer, aber immer oefter ,) Soll heissen in der Realitaet ist die Trefferquote doch recht hoch, auch wenn sie wohl keine 100% erreicht.
Die ist bestenfalls noch bei www. relativ hoch. Auch wenn es schon gesagt wurde, noch mal zum Verständniss für dich:

"www.hase.de" ist der Hostname, nichts anderes. Der Hostname "hase.de" muss nicht mal definiert sein und wenn doch, kann er auch leicht auf eine andere IP zeigen oder in der Webserverkonfiguration auf ein ganz anderes Verzeichnis/Projekt verweisen.
Airport1 hat geschrieben:Hm, wozu die gut sein sollte. Mal ein Beispiel: wenn jemand auf Deine Seite kommt und Du bekommst wenigstens den Referer mit (weil er ausnahmsweise mal nicht weggeschnitten oder blockiert ist - ich weiss, ich weiss ;)) und dann willst Du z.B. in Deiner mySQL Tabelle nachsehen ob dieser "Host" gesperrt ist, dann kannst Du ja nicht nach shop.pyjama.kunterbunt.de suchen (das naechste Mal kommt er ueber kasse.neuerkunde.kunterbunt.de rein z.B.) sondern Du schnippelst Dir erst mal den "Server Host" raus und suchst demnach nach kunterbunt.de . Kommt ein Content-Graeber direkt zu Dir und Du hast auch noch die IP dieser Domain in der Tabelle, bekommt der auch was vor die Nase, klar.
Für dieses Beispiel brauchst du den Hostnamen gar nicht extrahieren. Das kannst du einfach mit einem preg_match() ermitteln:

Code: Alles auswählen

$bad_domain = preg_quote('yahoo.com');

if (!empty($_SERVER['HTTP_REFERER']) && preg_match('|http://[^/]*'.$bad_domain.'|si', $_SERVER['HTTP_REFERER'])) {
  ...
}

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 30.10.2005, 19:09

Die Trefferquote ist fuer meine Belange mehr als ausreichend.

Das was Du unten vorschlaegst hatte ich mir auch ueberlegt, dann jedoch wieder verworfen weil ich dazu jedesmal alle Datensaetze aus der DB ziehen muesste bzw. man sich dann fragen muss wozu ne DB, das ginge wiederum ueber ne Textdatei schneller, vom Zugriff udn der Wartung her. Direkt im Code moechte ich ungern ein Array von bad-domains warten, das ist etwas schlechter Stil .)

Andererseits wenn man sichs genau ueberlegt ist es wohl sinnvoller den Referer so wie Du zu pruefen und halt gleich auf alle bad-hosts zu pruefen. Dann muss ich net erst lange rumschnipseln und in der DB rumsuchen..
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

Babelfisch
PostRank 5
PostRank 5
Beiträge: 204
Registriert: 05.10.2005, 14:15
Wohnort: Leipzig

Beitrag von Babelfisch » 30.10.2005, 19:25

Ich finde, dass solche Domains nicht unbedingt in eine DB gehören. Ich selbst hab eine ähnliche Sperre sogar in der .htaccess über mod_rewrite drin, da ich damit auch das "Klauen" von Bilder und statischen Inhalten verhindere. Wenn du es aber trotzdem über eine DB machen willst, ist das auch leicht möglich.

Code: Alles auswählen

$bad_domains = array('yahoo\.com', 'yahoo\.de', 'yahoo\.co\.uk');

$regex = '~http://[^/]*(?=' . implode(')|(?=', $bad_domains) . ')~si';

if (!empty($_SERVER['HTTP_REFERER']) && preg_match($regex, $_SERVER['HTTP_REFERER'])) {
  ...
}
Du musst dir halt nur ein Array $bad_domains mit den Domainnamen extrahieren und kannst es dann auch in einem Schwung testen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag