| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

02-09-2010, 11:42
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
Google Maps API und HTTP Referer?
Hallöchen,
ich habe mal wieder eine kleine Verständnisfrage.
Lege ich mir für die Google Maps API einen Key an, muss ich ja zugleich auch eine Domain angeben, von welcher aus der Link inkl. Key aufgerufen wird, rufe ich den Link von einer anderen Domain aus auf, die ich nicht vorher registriert habe, bekomme ich ein Popup mit einer Fehlermeldung.
Nun meine Frage:
Wie ermittelt Google (möglicherweise) die Domain, von welcher aus der Link aufgerufen wird?
$_SERVER['HTTP_REFERER']; soll da nicht sonderlich vertrauenswürdig sein, habe ich auf php.net gelesen.
Danke im Voraus ;-)
Boris
|

02-09-2010, 11:49
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
vielleicht nehmen die direkt das HTML-Pendant .. und der HTML-Referer ist ausreichend für Google um erstmal grob festzustellen, von welchem Server die Anfrage (weiter)geleitet wird
__________________
Wer LESEN kann, ist klar im Vorteil!
|

02-09-2010, 11:50
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.769
|
|
Zum einen reicht diese grobe Abfrage, zum anderen könnte es auch sein, dass die URL per JavaScript ausgelesen wird.
|

02-09-2010, 11:56
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
Ist denn das HTML Pendant nicht genauso manipulierbar, z.B. durch einen Browser, der einfach einen anderen Referer vortäuscht?
Kleiner Nachtrag:
Lese ich den Referer per Java Script aus..
Code:
<?php
echo "
<script type='text/javascript'>
document.write(document.referrer);
</script>";
?>
oder per PHP ...
Code:
$_SERVER['HTTP_REFERER'];
Wenn also der Browser den Referer nicht überträgt, dann würden doch beide Lösungen nicht funktionieren, oder?
Geändert von Ghostrider28 (02-09-2010 um 12:30 Uhr)
|

02-09-2010, 12:08
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
//Jeändert
Geändert von Ghostrider28 (02-09-2010 um 12:32 Uhr)
|

02-09-2010, 12:18
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
wie kommst du darauf, dass der Browser den Referer nicht überträgt ...
nimm mal Firefox mit Firebug und schau die die Netzwerk-kommunikation an, besonders die Header-Daten ....
im übrigen kann es Google doch egal sein, wenn deine Referer -Information unterdrückt wird - sie lassen dich nur auf die API wenn sie passt - also wirst du sie schön übertragen müssen
__________________
Wer LESEN kann, ist klar im Vorteil!
|

02-09-2010, 12:18
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.769
|
|
Deinen Nachtrag kannst du in Zukunft auch in deinen Beitrag editieren …*ob du es glaubst oder nicht, dafür ist die Funktion da!
Jedenfalls: Wenn ich die Adresse per JavaScript auslese, dann brauch ich nicht den Referer (warum auch?), sondern die aktuelle Adresse. Und das ist –*meines Wissens –*eine zuverlässige Ressource.
|

02-09-2010, 12:30
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
Ich frage nach der Manipulierbarkeit, weil ich gelesen habe, dass manch Browser den Referer nicht übertägt oder ihn verändert.
Und daher interessiert mich, wie man generell realisieren kann, dass immer ein zuverlässiger Referer übertragen wird, sollte man selbst mal in die Verlegenheit kommen, einen Referer verwenden zu müßen.
Sicherlich kann man jemanden aussperren bzw. dafür sorgen, dass er bei einem leeren Referer oder einer Nichtübereinstimmung mit der vorher registrierten Verbindung Domain zu API Key keinen Zugriff auf die API bekommt. Aber letztlich wünscht man sich doch, dass jeder User Zugriff auf die API hat, wenn er einen Key besitzt und der Key zur Domain passt.
Sorry für das "Nichteditieren", habe da in dem Moment nicht dran gedacht.
|

02-09-2010, 14:03
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.455
|
|
Wenn ein JavaScript auf der Domain example.com eingebunden wird und eben diese Domain prüfen will, dann braucht es keinen Referrer (der ist dann nämlich auch gar nicht interessant), sondern kann document.domain oder location.hostname auslesen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

02-09-2010, 20:20
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
Und eben für mich ist ja der Referer interessant.
Beispiel:
User 1 mit Domain example1.com ruft eine ihm zur Verfügung gestellte API auf. Diese API liegt auf example2.com
Aufruf:
example2.com/api.php?key=123456
Domain example2.com prüft nun, ob example1.com (Anhand des Referers) in der Datenbank den Schlüssel 123456 besitzt. Wenn ja, liefert die API ein Bild zurück, was auf der example1.com angezeigt wird.
Also muss ich mit möglichst zuverlässigen Mitteln den Referer übertragen / ermitteln, damit die Prüfung der Zugehörigkeit zum Schlüssel nicht fehlschlägt.
|

02-09-2010, 21:16
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
nö, das ist eher Aufgabe dessen, der die API benutzen will ....
wenn er halt so einen verfrickelten Browser benutzt, der den Referer verfälscht - dann kannst du ihm eine entsprechende Meldung präsentieren ... und ihn darauf hinweisen, dass er nen vernünftigen Browser benutzen soll
__________________
Wer LESEN kann, ist klar im Vorteil!
|

02-09-2010, 21:18
|
|
Ghostrider28
Registrierter Benutzer
|
|
Registriert seit: May 2010
Beiträge: 65
|
|
Jap, das wäre meine Ausweichvariante gewesen bzw. das Fehlerhandling für diesen Fall.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|