Auswerten von Post Variablen
TomIRL
- php
0 c:f.0 Alexander Brock0 TomIRL
0 TomIRL0 C.F.
0 Fabian St.
Hallo Miteinander,
Ich habe mir so überlegt, für bestimmte Fälle die $_POST[] Array umzuwandeln und eben als normale Variablen im Skript zur Verfügung zu stellen.
foreach ($_POST as $key => $value) {
$key=$value;
}
Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Keine Angst ich weiß was ich tue und die Herkunft der Variablen ist eindeutig.
Wo liegt in obigen Codeteil mein Denkfehler...
Geht nicht heißt in obigen Fall eine vorher übergebene Variable (ist überprüft und im Array vorhanden) wird nicht ausgegeben.
Vermutlich muß mal wieder jemand nur einen Schubs geben und dann komme ich wieder allein weiter..
VieleN Dank TomIRL
Guten Abend,
Ich habe mir so überlegt, für bestimmte Fälle die $_POST[] Array umzuwandeln und eben als normale Variablen im Skript zur Verfügung zu stellen.
foreach ($_POST as $key => $value) {
$key=$value;
}
Das ist witzig, das habe ich heute gerade gelernt.
Du machst diverse Denkfehler.
In $key stehrt der Name der von Dir gewünschtren Variable. Also müsste das zumindest '$$key = $value' heißen.
Der zweite Fehler ist, dass Du wohl _nicht_ weißt, was Du tust. Denn das gesamte Postarry einfach ungeprüft in gemeine Scriptvariablen zu überführen kommet einem Rücksprung ins letzte Jahrhundert gleich (php-mäßig 1989).
Der nächste Fehler ist, dass es für den Import bereits eine ferige Funktion gibt.
Noch ein fehler schein zu sein, dass sich hier wohl jemand für Tom IRL ausgibt, der eigentlich jemand anders sein muss. mein Boss verweist mich nämlich ziemlich oft auf die Postigns von TomIRL, und die waren bisher nie so blöde ;-)
Und überhaupt ist das nicht die Lösunf, denn da gibt es die Möglichkeit der bedingten Initialisierung. Wenn vohaneden, übernimm den Wert, wenn nicht, dann übergibt NULL und lege ihn auch in der Quelle mit NULL an. Habe ich gerade heute gelernt!!
Liebe Grüße
Tine
Hallo,
foreach ($_POST as $key => $value) {
$key=$value;
}Der zweite Fehler ist, dass Du wohl _nicht_ weißt, was Du tust. Denn das gesamte Postarry einfach ungeprüft in gemeine Scriptvariablen zu überführen kommet einem Rücksprung ins letzte Jahrhundert gleich (php-mäßig 1989).
Das, was er vorhat(te) entspricht außerdem genau der Einstellung
register_globals = on
Gruß
Alexander Brock
Das, was er vorhat(te) entspricht außerdem genau der Einstellung
register_globals = on
Jo genau das will ich bei bestimmten Sachen erreichen..
Du meinst also ich sollte mit ini_set () register_globals on setzen?
Ha.. Das will ich aber nicht..
Ich teste was aus und dafür ist es manchmal ganz hilfreich sich nicht jede Hürde in den Weg zu legen. Ich will mal sehen wie Du Deine Variable mit mehr als 25 Formulardaten zu Fuß intialisierst!
Und das lediglich für ein winziges Testsystem in einem größeren Projekt!
TomIRL
hi,
Das, was er vorhat(te) entspricht außerdem genau der Einstellung
register_globals = onJo genau das will ich bei bestimmten Sachen erreichen..
Du meinst also ich sollte mit ini_set () register_globals on setzen?
Ha.. Das will ich aber nicht..
du willst den selben effekt (mit allen nachteilen), aber willst es nicht so machen ...?
na wie auch immer, c:f sagte ja schon, dass es dafür einfachere lösungen gibt - extract() beispielsweise.
und ja, mit extract() kann man die sicherheit dabei in so fern noch wieder ein bisschen erhöhen, in dem man ein passendes flag nutzt ...
gruß,
wahsaga
hi,
du willst den selben effekt (mit allen nachteilen), aber willst es nicht so machen ...?
Ich kann es nicht machen..
Ein aktives System, welches man besser nicht umstellen sollte.
na wie auch immer, c:f sagte ja schon, dass es dafür einfachere lösungen gibt - extract() beispielsweise.
Hm kanntw ich bisher nicht..
Ich hatte bisher auch noch keinen Bedarf an einer solchen Funktion.
Die Nachteile...
ich bin keiner der sagt das Register Globals on sehr viele Nachteile hat. und so richtig plausibel ist das auch nur dann wenn Du unsauber codest, und zuläst, dass Dir jemand irgenwalchen Kram von außen einschleppt. Das Problem von außen eingeschleppter Variabelen besteht aber nur bei sehr wenigen Skripten überhaupt.
Meiner Ansicht nach wiegen sich die Leute in falscher Sicherheit.
Klar ich kann keine Daten mehr via Post einschleppen die da nicht hingehören, aber meist werden die Eingaben nicht sorgfältig behandelt, so dass SQL Injetions oder auch Spam über die Formulare problemlos möglich ist.
Als bestes Beispiel sind da wohl die zahllosen Gäsetbuchaplikationen zu nennen.
TomIRL
Hallo,
Das, was er vorhat(te) entspricht außerdem genau der Einstellung
register_globals = onJo genau das will ich bei bestimmten Sachen erreichen..
Du meinst also ich sollte mit ini_set () register_globals on setzen?
Nee, ich wollte nur erwähnen, dass die Übernahme aller POST Variablen
in das Script dem Verhalten von PHP bei register_globals = on entspricht
(bis auf die Tatsache, dass du nur POST Variablen akzeptierst,
register_globals = on auf GET und COOKIE).
Ha.. Das will ich aber nicht..
Ist auch besser so (IMHO).
Ich teste was aus und dafür ist es manchmal ganz hilfreich sich nicht jede Hürde in den Weg zu legen. Ich will mal sehen wie Du Deine Variable mit mehr als 25 Formulardaten zu Fuß intialisierst!
Das dauert halt etwas, aber auch nicht länger als diese ganzen
Formularfelder in HTML hinzuschreiben. Aber wozu brauchst du
25 Formularfelder?
Und das lediglich für ein winziges Testsystem in einem größeren Projekt!
Das hättest du vielleicht in deinem Ausgangsposting erwähnen sollen.
Gruß
Alexander Brock
Das hättest du vielleicht in deinem Ausgangsposting erwähnen sollen.
Ich sagte:
Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Keine Angst ich weiß was ich tue und die Herkunft der Variablen ist eindeutig.
Ich weiss was ich tue..
Und meins Skripte sind selbst bei register_globals on noch sicher.. Warum auch nicht?
TomIRL
Hallo,
Ich sagte:
Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Keine Angst ich weiß was ich tue und die Herkunft der Variablen ist eindeutig.
Ich bezog mich auf die Tatsache, dass das nur ein Testsystem ist,
"welches letztlich im Papierkorb landet". Das hast du erst in
https://forum.selfhtml.org/?t=93876&m=567470 bzw andeutungsweise in https://forum.selfhtml.org/?t=93876&m=567465
gesagt. Daher das Missverständnis.
Gruß
Alexander Brock
Hello,
Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Dann demaskier Dich doch mal, und versteck Dich nicht hinter fremden Namen *ggg*
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Nee, ich wollte nur erwähnen, dass die Übernahme aller POST Variablen
in das Script dem Verhalten von PHP bei register_globals = on entspricht
(bis auf die Tatsache, dass du nur POST Variablen akzeptierst,
register_globals = on auf GET und COOKIE).
Es wirkt auch auf alle möglichen anderen Paramter, die dann unter ihren "Spezialnamen" importiert werden:
$REQUEST
$PHP_SELF
usw...
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
In $key stehrt der Name der von Dir gewünschtren Variable. Also müsste das zumindest '$$key = $value' heißen.
Jo mein 2Dollardenkfehler..
Der zweite Fehler ist, dass Du wohl _nicht_ weißt, was Du tust. Denn das gesamte Postarry einfach ungeprüft in gemeine Scriptvariablen zu überführen kommet einem Rücksprung ins letzte Jahrhundert gleich (php-mäßig 1989).
Doch die Herkunft der Variable wird vorab überprüft, ist ein winziges System.
Ich weiss da schon was ich tue.
Das schrieb ich auch im Ausgangsposting...
Da wo diese Sache zu Einsatz kommt, da haben so 3-4 Leute überhaupt Zugriff. das heißt, Du brauchst zunächst mal ein Posting
Der nächste Fehler ist, dass es für den Import bereits eine ferige Funktion gibt.
Hm verräts Du mir nun auch noch wo?
Noch ein fehler schein zu sein, dass sich hier wohl jemand für Tom IRL ausgibt, der eigentlich jemand anders sein muss. mein Boss verweist mich nämlich ziemlich oft auf die Postigns von TomIRL, und die waren bisher nie so blöde ;-)
Tja manchmal hab ich halt auch so einen Tag wo bei mir jemand auf der Leitung steht. Soll vorkommen.
Und überhaupt ist das nicht die Lösunf, denn da gibt es die Möglichkeit der bedingten Initialisierung. Wenn vohaneden, übernimm den Wert, wenn nicht, dann übergibt NULL und lege ihn auch in der Quelle mit NULL an. Habe ich gerade heute gelernt!!
Das ist soweit richtig, dass betreibe ich bei meinen öffentlich zugänglichen Skripten auch so.
Das ist aber selbst dann sinnlos, wenn Du nicht vorher prüfst woher Deine Variablen kommen. Eine Post Request sende ich Dir von jedem beliebigen Server auf Dein Skript.
Und die Struktur der Variablen aus dem Skript zu lesen ist nicht so schwer bzw. mit ein paar Testläufen rauszubekommen.
TomIRL
Jo mein 2Dollardenkfehler..
Wie, mehr ist der nich wert?
Der nächste Fehler ist, dass es für den Import bereits eine ferige Funktion gibt.
http://de3.php.net/manual/en/function.import-request-variables.php
Hm verräts Du mir nun auch noch wo?
siehe oben.
Ich hoffe, du empfindest das nicht als ungehörig, wenn ich Dir die Manualseiten empfehle.
Aber eben noch war ich ziemlich down, weil ich nicht wusste, was die da gebastgelt haben. Ich habe wohl mal 10 Minuten nicht aufgepasst. Aber jetzt fühel eich mich schon besser, weil cih doch was verstanden habe die Woche.
Liebe Grüße
die Tine
Hi!
foreach ($_POST as $key => $value) {
$key=$value;
}Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Da sehe ich keine Vorteile.
Keine Angst ich weiß was ich tue und die Herkunft der Variablen ist eindeutig.
Das glaube ich nicht.
Wo liegt in obigen Codeteil mein Denkfehler...
Geht nicht heißt in obigen Fall eine vorher übergebene Variable (ist überprüft und im Array vorhanden) wird nicht ausgegeben.
Deine Variabeln werden bei jedem neuen Schleifendurchlauf überschrieben, sodass sie immer das letzte Element des Arrays enthalten.
Darüber hinaus gib dich bitte - wie c:f dir schon sagte - nicht als TomIRL aus, das glaubt dir hier doch sowieso keiner!!!
Grüße,
Fabian St.
Moin,
foreach ($_POST as $key => $value) {
$key=$value;
}Einfach um vor allen Dingen bestimmten Maskierungsproblemen aus dem Wege zu gehen.
Da sehe ich keine Vorteile.
Ich schon jede menge variablen.. Sauber Code für ein System fwelches letztlich im Papierkorb landet?
Keine Angst ich weiß was ich tue und die Herkunft der Variablen ist eindeutig.
Das glaube ich nicht.
Ich glaube schon .htaccess und noch eine sessionvariable die er zwingend braucht damit er überhaupt an das Skript kommt.
Obendrein wird der Referrer abgeprüft.
Also was noch?
Hallo Fabian,
schon mal getestet, ob TomIRL geschützt ist?
Darüber hinaus gib dich bitte - wie c:f dir schon sagte - nicht als TomIRL aus, das glaubt dir hier doch sowieso keiner!!!
Wenn dieses Posting durchgeht, dann ist TomIRL nicht geschützt.
Freundliche Grüße
Vinzenz, der nur deswegen als TomIRL postet, um rauszufinden, ob der Name geschützt ist. Was ich erwarte!
Hi Vinzenz!
schon mal getestet, ob TomIRL geschützt ist?
Nein, aber du hast es hiermit gemacht :-) Also hatte ich Recht ;-)
Freundliche Grüße
Vinzenz, der nur deswegen als TomIRL postet, um rauszufinden, ob der Name geschützt ist. Was ich erwarte!
Grüße,
Fabian St.
Hallo Fabian,
schon mal getestet, ob TomIRL geschützt ist?
Nein, aber du hast es hiermit gemacht :-) Also hatte ich Recht ;-)
Ich wünschte, ich hätte es nicht getan. Ich war vom Mißerfolg überzeugt...
und <bitte style="auf den Knien rutschend">diesen Teilthread zu löschen</bitte>
Freundliche Grüsse,
Vinzenz, der eher Prometheus statt Epimetheus hätte nacheifern sollen.
Hi Vinzenz!
schon mal getestet, ob TomIRL geschützt ist?
Nein, aber du hast es hiermit gemacht :-) Also hatte ich Recht ;-)Ich wünschte, ich hätte es nicht getan. Ich war vom Mißerfolg überzeugt...
und <bitte style="auf den Knien rutschend">diesen Teilthread zu löschen</bitte>
Freundliche Grüsse,
Vinzenz, der eher Prometheus statt Epimetheus hätte nacheifern sollen.
Ich hoffe, es wird uns allen verziehen... ;-)
Grüße,
Fabian St.
Hello,
Ich hoffe, es wird uns allen verziehen... ;-)
Na, Du weist ja, was sonst passiert:
echo veryloud(shiftleft_in_alpha('Kfipwb'));
Und die Folgen kannst Du Dir doch denken.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom