ursus contionabundo: CMS selber Programmieren?

Beitrag lesen

Sowohl $_SERVER['REQUEST_SCHEME'] als auch $_SERVER['HTTP_HOST'] werden aus dem Client-Request gelesen und lassen sich somit einfach manipulieren.

Also ich glaube, dass, wenn jemand $_SERVER['REQUEST_SCHEME'] manipuliert, gar nichts geschieht. Es kommt ein 400 oder 415er. Ist $_SERVER['HTTP_HOST'] falsch … dann könnte das zwar (unter der Bedingung, dass das CMS auf dem Default-Host läuft und der DNS oder das ganze OS des Nutzer manipuliert ist) gehen - aber dazu müsste alles andere als ein normaler Webbrowser oder ein sehr spezieller Proxy benutzt werden.

Das aber bedeutet: Der Angreifer braucht kein XSS mehr, weil er dem Nutzer des von ihm kontrolliertem DNS oder Betriebssystems - siehe admin-Rechte an der host-Datei, des manipulierten Browsers oder des von ihm manipulierten Proxys ohne XSS und also viel einfacher und ganz unabhängig von mir ein X für ein U vormachen kann.

Ohne solche vom Angreifer zuvor manipulierte Software wird das REQUEST_SCHEME und der HTTP_HOST korrekt gesendet. Daran ist mit HTML oder meinetwegen Javascript nichts zu ändern.

Verwendet der Angreifer selbst die Software, dann bekommt er selbst zurück, was er gesendet hat. Ich glaube fest daran, dass ich nicht mehr verantwortlich bin, wenn jemand mit einem Browser nicht in sondern aus der Piratenbucht surft.

Ja, deswegen solltest du serverseitig weiterleiten, und wenn du unbedingt die Return-URL über mehrere HTTP-Roundturns speichern möchtest,

Nein, nur eine Runde.