Raketenwilli: $_SERVER['SERVER_NAME'] vers. $_SERVER['HTTP_HOST']

Beitrag lesen

Ja. Den.

Hinweis: Unter Apache 2 müssen UseCanonicalName = On und
ServerName gesetzt werden. Ansonsten reflektiert dieser Wert den 
Hostnamen, der vom Client gesendet wurde und vorgetäuscht werden
kann. Es ist nicht sicher, sich in einem sicherheitsabhängigen 
Umfeld auf diesen Wert zu verlassen.

Aber was passiert denn, wenn ich mehrere Virtual Hosts im Apache definiere und die alle auf die gleiche Codebasis loslasse? Führt der canonical name dann dazu, dass für alle der gleiche SERVER_HOST gesetzt wird?

  • Wenn Du dort JEWEILS den ServerName konfiguriert hast, erscheint mit den oben empfohlenen Erstellungen genau der als $_SERVER['SERVER_NAME'] konfigurierte.
  • Hast Du den antelefonierten Hostname als ServerAliaskonfiguriert, dann erscheint (nur) mit den oben empfohlenen Erstellungen beim Befragen von $_SERVER['SERVER_NAME'] ebenfalls das, was als ServerName konfiguriert wurde, beim Befragen von $_SERVER['HTTP_HOST'] der „antelefonierte Hostname“.
  • Ist für den „antelefonierte Hostname“ gar kein virtueller Host konfiguriert, erscheint mit den obigen Einstellungenn der als ServerName für den _default_host konfigurierte Name.

D.h. man braucht eine Lösung, die vom hostname Header unabhängig ist, find ich.

Sven will (aus nachvollziehbaren Gründen) das Gegenteil, er will ja gerade in Abhängigkeit vom Host aus dem HTTP-Request-Header antworten. Zitat: „als Weiche, für das richtige Ausliefern der Daten“