Thomas Luethi: readfile und Variablen übergeben

Beitrag lesen

Hallo,

Mit include() oder require() mitten in einem Script Daten einzulesen, halte ich fpr sehr bedenklich. Außerdem sollte man als Programmierer doch immer für höchstmögliche Sicherheit seiner Erzeugnisse sorgen. Warum dann also Löcher bohren, wo keine hingehören?
Sorry, aber Du erzaehlst da IMHO voelligen Quatsch.
Ja? Wie kommst Du darauf? Ich verstehe Dich nicht, oder reden wir aneinander vorbei? War ich Dir gegenüber auch so ageressiv? Dann entschuldige bitte.

Nein, Du warst nicht aggressiv.

Weil Du beides sozusagen in einem Atemzug nanntest ("mitten im Script" und "Sicherheit"),
hatte ich den Eindruck, dass Du sagen wolltest, es sei _sicherer_, externe Dateien
nur am Anfang des Scripts mit include() einzubinden, als diese mitten im Script zu tun.
Und das ist nun wirklich nicht der Fall, da sind wir uns hoffentlich einig.

Es tut mir leid, dass ich so heftig reagierte.

  1. Mit include() oder require() mitten im Script VARIABLEN einzulesen, halte ich für bedenklich. Da schleichen sich schnell Fehler ein und man hat dann plötzlich die im Script bereits anderweitig benutzen Bezeichner wieder überschrieben.

Das stimmt natuerlich - es ist leichter, den Ueberblick zu verlieren, welche Variable
zu welchem Zeitpunkt welchen Wert enthaelt.

Wenn man aber sorgfaeltig arbeitet und weiss, was man tut, kann man ohne weiteres
auch mitten im Skript eine andere Datei mit include() einbinden.

  1. Eine Sicherheitslücke sind include() und require() immer. Warum sollte man sie dann also benutzen, wenn es eine viel sicherere Methode gibt, Variablen nebst ihren Typen, Namen und Werten wohlstrukturiert in einem Array abzulegen und wieder einzulesen. Das sicher bezieht sich darauf, dass die Prozesskontrolle zu keinem Zeitpunkt an den Code aus der externen Quelle (extern meint hier außerhalb des Scriptes) übertragen wird. Das ist nicht notwendig und daher zu vermeiden.

So, wie ich das urspruengliche Posting von Svenni [pref:t=61472&m=346653] verstanden
hatte, will Svenni genau das: Eine externe *.html-Datei aus dem gleichen Verzeichnis einlesen.
Dort soll im Quellcode etwas stehen, was dann bewirken soll, dass eine Variable
im Hauptscript einen neuen Wert kriegt.
Dass das mit  readfile() nicht funktionieren kann, hast Du ja schon in [pref:t=61472&m=346665]
erklaert.

Ich verstand Svenni so, dass die eingebundene Datei "datei.html"

  • einerseits HTML-Quellcode enthaelt (Mutmassung wegen der Endung *.html)
  • andererseits PHP-Quellcode enthaelt, der den Wert der Variable festlegt
       (meine Interpretation der Problembeschreibung)

Solange die "datei.html" ebenfalls nur von Svenni stammt, gibt es hinsichtlich der
Sicherheit fuer mich keine Bedenken, hierfuer include() zu verwenden.

Ich denke, bevor wir hier weiterdiskutieren, sollte Svenni nochmals genauer sagen

  • was er erreichen will
  • wer die einzubindende "datei.html" erstellt
  • wie diese Datei erstellt wird
  • was diese Datei alles enthalten soll (HTML-Code, PHP-Code, beides,
       nur Variablenwerte).

Freundliche Gruesse,

Thomas