Edgar Ehritt: Redirect via Header verhindern

Beitrag lesen

Tach Hopsel,

Auf einer Seite lagern mehrere PHP-Skripte, die von Usern erstellt werden. (Es handelt sich hierbei um ein CMS.) Diese PHP-Skripte machen natürlich auch Ausgaben.
<?php echo 'Text'; ?>
führt zu der Ausgabe "Text".

wenn ich das richtig verstehe, können User PHP-Code ausführen lassen? Was unternimmst Du zur Sicherung, das kein Schadcode ausgeführt wird?

Diesen "Text" benötige ich für weitere Verarbeitung und Speicherung.
Das funktioniert über die Ausgabepufferfunktionen von PHP auch sehr gut.

Problem: Wenn in einem Skript folgender Code vorkommt, wird natürlich auch mein Skript weitergeleitet:
header('Location: http://example.org');

Kann ich diese Weiterleitung verhindern?

Ja. Im einfachsten Fall reicht es vorm Ausführen des Nutzercodes z. B. mit echo " "; eine Ausgabe zu erzeugen. Dies kann abhängig von der Konfiguration zu unerwünschten Fehlermeldungen führen. D

Wenn nicht, kann ich sie wenigstens irgendwie erkennen ohne vorher den Code entsprechend zu parsen?

Jain. Du hast die Möglichkeit (worauf auch ein vernünftiges Sicherheitskonzept basieren sollte) mit der Tokenizer-Erweiterung der Nutzereingaben vor Ausführung zu analysieren (was parsen übrigens bedeutet).

Wenn es keine andere Möglichkeit gibt, werde ich den Code wohl üder übel vorher durchsuchen müssen, ob eine Weiterleitung stattfindet.

Je nach Einsatzgebiet sollte so aber das Sicherheitsrisiko minimiert werden.

Gruß aus Berlin!
eddi