$target = $_GET['target'];
include($target);
Das ist so ziemlich das schlimmste was man machen kann! Damit kann jeder jeden Code den er für richtig hält auf Deinem Server ausführen, bedenke dass include auch über HTTP... funktioniert!
das stimmt natürlich. Aber http://localhost ist da recht sicher gegen Eindringlinge :o) ...
für das Internet habe ich dann natürlich eine White List, mit der ich das abgleiche.
Außerdem ist das include() ein wenig vereinfacht, eigentlich wird der Code erst geparst.
und zum restlichen Code, also ich würde das etwas anders machen, ich würde die Daten entweder in einer Datenbank, Flatfiles oder am besten im XML-Format speichern, und mit PHP lediglich die Daten ausgeben. Das wäre auch erheblich besser für den Alltag geeignet, wer soll denn die Inhalte im PHP-Code pflegen?
Datenbank: zu teuer
Flatfile: das wollte ich erst machen und dann die Daten einlesen. Aber als ich da vor den RegExp saß dachte ich mir "nee, ich bin faul, ich nehme gleich PHP".
XML: wäre natürlich optimal, aber dazu müßte ich mir erst erarbeiten, wie das geht, ich habe noch nie XML-Daten mit PHP verarbeitet.
Vielleicht hilft Dir auch einer vernünftige Template-Lösung wie http://smarty.php.net/
Homo Faber. Oder auf Deutsch: Selbst ist der Mann (natürlich auch die Frau). Kopieren kann ja jeder.
Da die Solution nur semiprofessionell ist und natürlich auch ein wenig Egobooster dahinter steckt, mache ich das lieber alles fein selber.
(meine erste Websiteversion war mit phpCMS. Aber das ist mir zu statisch gewesen)
Oder hast Du da tatsächlich Performance-Bedenken?
nun ja, so ein Egobooster hat halt auch seine Nachteile: der restliche Code ist zwar schon recht optimiert, aber so lange programmiere ich noch nicht mit PHP (so ca. 3 Monate?) und das heißt ich kenne die ganzen schmutzigen Speedhacks - soweit es welche gibt - nicht. Und da ich ansonsten eine ganze Menge parse - und das alles mit Stringfunktionen, ohne RegExp - muß ich doch ein wenig auf die Performance achten.
Gruß,
KonRad -
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
ss:| zu:( ls:$ fo:! de:] va:| ch:? sh:) n4:# rl:? br:& js:| ie:) fl:| mo:|