(dennoch Menschelei) - register_globals on *ärger*
fastix®
- php
Moin!
Gestern habe ich hier irgendwo gelesen, man könne mit
register_globals on
und Ausnutzung des hübschen Effektes, dass man dann seine Formulareingaben, Sessionvariablen und Servervariablen sowie die Umgebung dann einfach in hübsche Variablen übernommen bekommt, sicher programmieren.
Womöglich kann das irgendwie gehen. Nur mit welchen Aufwand?
Ich sitze gerade vor einem solch goldigem Projekt und versuche es zu ändern (ergänzen).
Jetzt habe ich folgende Probleme:
Dateien mit 20kb Programmtext (HTML in 'Templates'), irgendwoher tauchen Variablen auf, der Herkunft völlig unklar ist und die auch 'tainted', also vergiftet sein können. Überblick==Durchblick, denn beide sind NULL, also FALSE.
Wenn ich die Notizen zuschalte (Eine gute Idee auf einem Entwicklersystem) bekomme ich so ca. 100 nette Meldungen...)
Diese Software "läuft" nur mit:
error_reporting E_ALL & ~E_NOTICE
Mehr muss man dazu nicht sagen- oder?
Ich bin 'hell begeistert'. Meine Vorgänger sind es offenbar auch, denn ich habe gerade bemerkt, dass einer die Datenbank abfragt um einen Wert rauszuholen, der in $_SESSION[] steht. Dem ging es also so wie mir...
Also ich kotze mich hier aus und habe noch gar keine brauchbare Aussage gemacht, aber die kommt jetzt:
Leute, Leute! Wenn ihr Eure Projekte weitergebt oder selbst später mal was ändern wollt oder einfach nur mal den Server wechseln wollt (Könnt Ihr das auschließen?), dann proggt einfach saubär und lasst die Fingerchen von 'register_globals on' und schaltet den Report der Notizen ein. Auch wenn ihr für Euch selbst proggt: Ihr betrügt Euch selbst und wenn Ihr sowas verkauft, dann betrügt Ihr den Kunde.
Man kann also mit 'register_globals on' 'sicher' programmieren? Sicher ist nach meiner Meinung lediglich, dass man oder ein Nachfolger später keinen Durchblick hat... und Fehler macht.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Hi,
Womöglich kann das irgendwie gehen. Nur mit welchen Aufwand?
einfach diejenigen Variablen, die Du benutzen willst, aus den Superglobalen selbst erzeugen. Wo ist das Problem? ;-)
Mehr muss man dazu nicht sagen- oder?
Nein. Ich verstehe Deinen Frust.
Leute, Leute! Wenn ihr Eure Projekte weitergebt oder selbst später mal was ändern wollt oder einfach nur mal den Server wechseln wollt (Könnt Ihr das auschließen?), dann proggt einfach saubär und lasst die Fingerchen von 'register_globals on' und schaltet den Report der Notizen ein. Auch wenn ihr für Euch selbst proggt: Ihr betrügt Euch selbst und wenn Ihr sowas verkauft, dann betrügt Ihr den Kunde.
Solange in den Köpfen der Leute Begriffe wie "URL-Variablen" rum spuken, kommen sie überhaupt nicht erst auf die Idee, dass da irgend etwas falsch sein könnte. Wenn ihre Software auf einem anderen Server nicht mehr funktio..., Verzeihung, "funzt", ist halt mit dem Server etwas nicht in Ordnung.
Man kann also mit 'register_globals on' 'sicher' programmieren? Sicher ist nach meiner Meinung lediglich, dass man oder ein Nachfolger später keinen Durchblick hat... und Fehler macht.
Die entsprechenden Entwickler haben von Entwicklung wenig bis keine Ahnung und sind sich dieser Probleme nicht bewusst. Dazu kommt, dass falsche Begrifflichkeiten automatisch falsche Vorstellungen erzeugen, wie beispielsweise die, dass das magische Erzeugen von Variablen beliebigen Namens aus diversen Quellen im globalen Scope eine natürliche Sache sei. Was meinst Du wohl, weshalb ich immer interveniere, wenn jemand von "URL-Variablen" o.ä. spricht?
PHP macht es einfach, sich einen grottenschlechten Programmierstil anzueignen, weil die Dinge einfach "funzen", ohne dass sich der Entwickler darum kümmern muss, dass sie auch funktionieren. Das ist zwar nicht der einzige, aber auf jeden Fall der Hauptgrund, warum ich der festen Überzeugung bin:
PHP ist für Anfänger ungeeignet.
Genau wie Frontpage. Jemand, der die Dinge gelernt hat, die Probleme sowie Lösungen dafür kennt, der wird damit umgehen können. Ein Anfänger ist mit der scheinbaren Einfachheit jedoch hoffnungsfrei überfordert und produziert zwangsläufig unbrauchbare Ergebnisse.
Cheatah
Hellihello
PHP ist für Anfänger ungeeignet.
Und was mach ich jetzt?
Genau wie Frontpage.
Aus diesem Stadium bin ich aber "lebend" oder vielleicht nur "funzend" rausgekommen.
frankx
Hi,
PHP ist für Anfänger ungeeignet.
Und was mach ich jetzt?
die Geheimnisse der Entwicklung und des Kontextes HTTP auf andere Weise erlernen.
Genau wie Frontpage.
Aus diesem Stadium bin ich aber "lebend" oder vielleicht nur "funzend" rausgekommen.
Wenn Du aus dem Stadium "Frontpage" raus gekommen bist, ist das schon mal gut :-)
Cheatah
Hellihello
PHP ist für Anfänger ungeeignet.
Und was mach ich jetzt?die Geheimnisse der Entwicklung und des Kontextes HTTP auf andere Weise erlernen.
z.B.?
Wenn Du aus dem Stadium "Frontpage" raus gekommen bist, ist das schon mal gut :-)
ja, kommt nicht wieder vor (;-).
frankx
Hallo Freunde des gehobenen Forumsgenusses,
PHP macht es einfach, sich einen grottenschlechten Programmierstil anzueignen, weil die Dinge einfach "funzen", ohne dass sich der Entwickler darum kümmern muss, dass sie auch funktionieren.
PHP macht es auch schwer, Programme für alle möglichen PHP-Konfigurationen zu schreiben (MagicQuotes / register_globals), man muss immer darauf achten, dass man die Slashes wieder los wird (und dass man sie nicht zu oft entfernt).
Gruß
Alexander Brock
Hi,
PHP macht es auch schwer, Programme für alle möglichen PHP-Konfigurationen zu schreiben
Verglichen mit systemübergeifenden Sprachen, wo alles absolut identisch ist? Ja.
(MagicQuotes / register_globals), man muss immer darauf achten, dass man die Slashes wieder los wird (und dass man sie nicht zu oft entfernt).
Naja: Einmal eine Funktion dafür geschrieben - nie wieder Probleme.
Generell baue ich auf einem eigenen Framework auf. D.h., mir steht eine genau (nämlich von mir) definierte Umgebung an Variaben/Konstanten/Funktionen zur Verfügung, wo es mir dann absolut egal ist, auf welcher Pattform, in welcher Konfiguration und mit welcher Version das läuft.
Bis man aber weiß, wo Fallstricke liegen, bedarf es ggf.ein wenig Erfahrung - was wiederum im Gegensatz zum Umstand steht, daß sich gerne Anfänger auf PHP stürzen, um "auf die Schnelle" etwas scheinbar brauchbares zu programmieren ...
Gruß, Cybaer
Hellihello
und schaltet den Report der Notizen ein. Auch wenn ihr für Euch selbst proggt
der dann plötzlich wohl mit der neueren PHP 5 irgendwas plötzlich Warnings in der Mail-Klasse von Pear ausgespuckt hat (irgendwas mit leeren Referenzen oder so). Also gut zu wissen, was los ist. Ich habs dann aber erstmal ausgeschaltet.
frankx
Hi,
Man kann also mit 'register_globals on' 'sicher' programmieren?
Natürlich kann man das. Denn es ist ja, auch gerade aus Gründen der Übersichtlichkeit/Wartbarkeit geboten, daß man die Variablen, die man verwendet, auch initialisiert (und dabei ggf. gleich kommentiert).
Wer schludern "will", kann das auch mit register_globals=0ff - fast gehupft wie gesprungen (nur das eine Mal in den Gulli, das andere Mal von der Klippe).
Gruß, Cybaer