Hinweise zur Same Origin Policy

Die Same-Origin-Policy ist ein Sicherheitskonzept in JavaScript, das den Zugriff einer Webseite auf Objekte und Ressourcen von anderen Quellen (Origins) regelt. Ein Origin wird durch das Schema (Protokoll), den Host und den Port eines URL definiert.

In JavaScript werden dadurch Netzwerkzugriffe auf Ressourcen anderer Origins unterbunden. Für die BKG WebMap bedeutet dies eine Einschränkung der Funktionalität, sobald die Webseite auf einer anderen Domain als sg.geodatenzentrum.de betrieben wird. Beispielsweise funktionieren dadurch die WFS-Layer oder die Ortssuche des BKG nicht mehr. Im Folgenden werden zwei Lösungen für dieses Problem beschrieben.

Cross-Origin Resource Sharing (CORS)

Der CORS-Standard beschreibt ein Verfahren, um Webbrowsern ein Cross-Origin Resource Sharing zu ermöglichen. Hierfür werden spezielle HTTP-Header verwendet, die bestimmten Clients den Zugriff auf Ressourcen anderer Origins erlauben. Die Implementierung der zusätzlichen Header muss auf Seiten der Ressource erfolgen. Für die Dienste des BKGs wurde dies umgesetzt. Diese können ohne weitere Anpassungen mit der BKG WebMap verwendet werden.

CORS wird nicht von allen Browsern unterstützt. Aktuelle Browserversionen (Internet Explorer 8+, Firefox 3.5+, Google Chrome 3+) haben aber den Standard implementiert. Eine ausführliche Liste der Browserunterstützung findet sich hier.

Proxy-Script

Für die vollständige Browserunterstützung empfehlen wir die Verwendung eines Proxy-Scripts, das die Anfragen zur eigentlichen Ressource weiterleitet. Das Proxy-Script läuft auf dem eigenen Webserver und hat somit den selben Origin wie die Webseite. Eine Beispielimplementierung für PHP findet sich hier. In der BKG WebMap kann dieses Script global durch Definition des Parameters OpenLayers.ProxyHost verwendet werden.

Beispiel:

    OpenLayers.ProxyHost="proxy.php?url=";

Weiterführende Links