1x40 Geschrieben 15. Juni 2011 Geschrieben 15. Juni 2011 Hallo, das ist nun mein erster Thread hier. Es geht um folgendes, ich bin z.Z. am basteln einer Website für einen Kumpel, ich würde es ja sogar ganz vage ein CMS nennen Es gibt eine Sidebar in welcher die Link's zu den einzelnen Inhalten vorhanden sind über die via $_GET[]; die Site-ID's an die index.php übergeben werden welche wiederum die Inhalte aus einer MySQL-DB ausliest. Läuft bis jetzt auch alles ganz gut mein Problem ist nun das es verschiedene Kategorien gibt, wo es von Vorteil wäre wenn nicht nur ein Einfacher Text ausgegeben wird, sondern ein Komplettest Script geladen oder zumindest eine Seite via include(); eingebunden wird. Ich habe nun gelsen das, dass mit der Funktion eval(); gehen soll, bin mir aber nicht sicher, ob das denn eine wirklich Elegante Lösung ist? Nun wollte ich wissen ob es vielleicht noch Alternativen gibt oder ob man eval(); sorglos nutzen kann? Grüß'le und danke für's lesen Zitieren
flashpixx Geschrieben 15. Juni 2011 Geschrieben 15. Juni 2011 eval = evil ein Include nützt nicht viel, wenn die Daten in der Datenbank stehen, außerdem würde ich auch dazu raten require / require_once zu verwenden. Falls man eval einsetzt, sollte man wissen was man tut, denn wenn der Benutzer PHP Code frei eingeben kann, kann er bei entsprechendem Scope alle Eigenschaften des bestehenden Codes modifizieren. Auch ist die Frage zu klären, was passiert, wenn in dem eval-Code Fehler auftreten, generell wäre somit dann das ganze Script nicht lauffähig. Ebenso muss auch geklärt werden, wie die PHP Daten in der Datenbank stehen (maskiert). Zitieren
1x40 Geschrieben 15. Juni 2011 Autor Geschrieben 15. Juni 2011 Heho, ein Include nützt nicht viel, wenn die Daten in der Datenbank stehen ich meinte das eigentlich so: eval(include(blablub.php)[/PHP] bzw. include durch require ersetzen und wenn es nur so eine Abfrage ist dürfte das Risiko doch minimal sein oder? Grüße Zitieren
flashpixx Geschrieben 15. Juni 2011 Geschrieben 15. Juni 2011 und wenn es nur so eine Abfrage ist dürfte das Risiko doch minimal sein oder? Wenn ich z.B. via Webformular Dateien hochladen kann, dann lade ich eine PHP Datei hoch, die mir z.B. Daten aus /etc auslesen kann. Da ein eval ein Include macht und ich den PHP Code flexibel in der Datenbank hinterlegen kann, lasse ich den PHP Code auf die hochgeladene Datei verweisen und sie wird ausgeführt und liefert mir ggf Informationen. Wenn man jetzt Fehler in dem Datenbankzugriff hat (SQL-Injection) bzw. das Uploadscript die Daten nicht richtig verarbeitet, kann jeder von außen Daten lesen und ggf verändern. Zitieren
1x40 Geschrieben 15. Juni 2011 Autor Geschrieben 15. Juni 2011 okay dann lass ich das lieber ich werd's jetzt so machen, das ich noch eine Spalte in die Tabelle mit dem Kopf "Script" und dann true oder false reinschreibe womit ich dann quasi ein flag habe welches der index.php sagt "achtung jetzt musst du datei blablub.php einbinden." ich denke so könnt's auch klappen Danke schonmal und falls es eine elegantere Lösung gibt, immer her damit Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.