Archiv verlassen und diese Seite im Standarddesign anzeigen : Variable selbst per GET übergeben
juergen
29.09.2009, 09:19:24
Hallo Forum,
ich habe folgendes Problem!
Ich muß per GET eine Variable selbst (nicht den Wert) über die URL übergeben.
Mein Zustand:
Ich binde per I-Frame ein Formular in meine Seite ein. In diesem Formular brauche ich eine Variable die mir nur in der Hauptseite vorliegt. Der Wert dieser Variablen ist so komplex das ich seit Tagen dabei Probleme habe ihn störungsfrei ins Formular zu bekommen. Deshalb suche ich nach einer Möglichkeit nicht den Wert sondern die Variable selbst zu übergeben.
Ich habe es so versucht aber es funktioniert nicht!
// Variable in der Hauptseite
$_meine_Variable = $_Wert_meiner_Variablen;
// URL der per I-Frame eingebundenen Seite
// irgendwas.php?meine_Variable=meine_Variable
// Im I-Frame
$_meine_neue_Variable = "$_".$_GET['meine_Variable'].";
// Es kann in jedem Fall möglich sein das ich in die falsche Richtung Denke!
Meine Frage:
Gibt es eine Möglichkeit einen String mit mit dem Doller-Zeichen zu verbinden sodas es dann eine Variable ergibt? Oder wie kann man das Problem lösen?
Vielen vielen Dank für Eure Hilfe.
Hi jürgen
generell warst eh schon auf dem richtigen weg
eine lösung heißt $$
zuerst baust du wie jetzt schon deinen Variablen namen zusammen
$_meine_neue_Variable = "$_".$_GET['meine_Variable'].";
um dann den wert zu erhalten
machst du
echo $$_meine_neue_Variable
kannst du den wert nicht irgendwie anders übergeben
get is ned sehr schön
zb Session, Cookie
juergen
29.09.2009, 11:33:37
Hallo Nev,
mensch super. Da war ich ja schon nahe dran. Aber knap daneben ist auch vorbei.
Per GET war jetzt die erste Idee.
Ich werde mir mal die Session ansehen wie man das macht.
Leider kann ich das erst am Abend testen. Ich melde mich dann wieder.
Schon mal vielen Dank für Deine Hilfe.
DokuLeseHemmung
29.09.2009, 11:37:25
Der Wert dieser Variablen ist so komplex das ich seit Tagen dabei Probleme habe ihn störungsfrei ins Formular zu bekommen.
Häää....
Unglaublich!
Ich muß per GET eine Variable selbst (nicht den Wert) über die URL übergeben.
Hää....
Du meinst den Namen, oder?
Warum lagerst du deine Variablen nicht in Session zwischen?
Die Variablen werden nicht schöner davon, wenn sie dauernd zwischen Server und Client hin und her pendeln.
eine lösung heißt $$
Variable Variablen sind böse und sollten nicht verwendet werden. Niemals. Und an dieser Stelle bringen sie genau gar keine Vorteile.
Variable Variablen sind böse und sollten nicht verwendet werden. Niemals. Und an dieser Stelle bringen sie genau gar keine Vorteile.
Vollkommen richtig
man sollte sie nicht verwenden.
Aber du musst immer vom stand des Coders ausgehn,
meister sind ned vom himmel gefallen.
Du solltest wie oben schon erwähnt Session verwenden.
kannst aber a nur, wenn du auf der Domain bleibst, das gleiche gilt für Cookies
cortex
29.09.2009, 11:42:52
Variable Variablen sind böse und sollten nicht verwendet werden. Niemals.
gibts dazu hard facts?
cx
gibts dazu hard facts?
cx
Nahja, wenn das script schlecht gesichert is, kannst scho viel anfangen damit
Stell dir vor, das du Variablen die DB, Pfade, Domains enthalten einfach überschreiben kannst.
und dadurch "a bissal" was machen kannst :)
juergen
29.09.2009, 12:12:17
Hallo Nev,
wie geht das den mit einer Session?
Im übrigen ist der Inhalt der Variablen ein sammelsorium von Text (Französisch bis Spanisch usw.) und HTML Blöcken wie Bilder etc. Also nichts wichtiges! Eben nur schwierig es per GET zu übergeben.
Es wäre mir eine Große Hilfe wenn mir das einer mit der Session erklären könnte!
Vielen Dank schon mal.
cortex
29.09.2009, 12:25:42
Nahja, wenn das script schlecht gesichert is
das ist ein generelles problem .-
Stell dir vor, das du Variablen die DB, Pfade, Domains enthalten einfach überschreiben kannst.
wer würde variable variablen dafür schon missbrauchen...? ich dachte bei hard facts an was anderes - nicht an generelle DOs and DONTs der (php-)programmierung.
cx
cortex
29.09.2009, 12:27:47
Es wäre mir eine Große Hilfe wenn mir das einer mit der Session erklären könnte!
unter punkt d unserer forenregeln (http://www.selfphp.de/forum/announcement.php?f=12) findest du hervorragende tutorials. es wäre wirklich sinnlos, vielfach gesagtes / erklärtes zu wiederholen...
cx
Du kurz a andere Frage
Es geht um texte??
gibts da eine fixe anzahl?
is das 1 text der in dem iframe ausgegeben wird?
Den dann bräuchtest du sowieso nur die ID übergeben und dir über ein File, bzw. DB dien richtigen wert wieder auslesen.
zur Session
hat cortex schon was geschrieben :)
@cortex - Session
a bissal freundlich gehts aber scho ;)
@cortex
für dynamische Variablen, gibt das selbe, wie für "harte", das problem is, das du eine massive Lücke aufmachst, die du schwer schliessen kannst.
Sobald i eine Variable effektive manipulieren kann, kann man fast alles mit einem system machen, angefangen von XSS, Session klauen, loggen usw..
Denk nur mal ein einfaches Include ($$Dyn_Var)
cortex
29.09.2009, 12:42:58
a bissal freundlich gehts aber scho ;)
wenn wir uns auf hochdeutsch als kleinsten gemeinsamen nenner eines deutschsprachigen forums einigen können, denk ich nochmal darüber nach .-p darüber hinaus klingen unfreundliche statements schon ein bissel anders, gelle?
Denk nur mal ein einfaches Include ($$Dyn_Var)
wie gesagt - ich sehe keinen unterschied zu generellen vorsichtsmasznahmen. aber nun... ich habe bisher kaum mit var vars gearbeitet und sehe daher möglicherweise die pitfalls nicht...
cx
wenn wir uns auf hochdeutsch als kleinsten gemeinsamen nenner eines deutschsprachigen forums einigen können, denk ich nochmal darüber nach .-p darüber hinaus klingen unfreundliche statements schon ein bissel anders, gelle?
wie gesagt - ich sehe keinen unterschied zu generellen vorsichtsmasznahmen. aber nun... ich habe bisher kaum mit var vars gearbeitet und sehe daher möglicherweise die pitfalls nicht...
cx
geb i dir scho recht, das es auch andere varianten gibt
trotzdem sollte man schaun, einen gewissen ton zu waren
-- damit Thema beendet --
@Thema
Bei fixen variablen kann man nur diesen wert überschreiben
aber wenn du variablen dynamisch zusammen baust, dann könntest du generell jede Variable überschreiben, das is die problematik
cortex
29.09.2009, 13:02:54
@nev: zum OT: einverstanden - lassen wir das. möglicherweise warst du zu lange nicht vor ort. diskussionen zu ton + umgangsformen gibts hier wie in anderen foren auch in (un-)regelmäszigen abständen.
@doku: warum hälst du dich plötzlich bei der diskussion zurück? du hast das ganze doch mit
Variable Variablen sind böse und sollten nicht verwendet werden. Niemals.
angestossen.
cx
DokuLeseHemmung
29.09.2009, 13:03:27
Eben nur schwierig es per GET zu übergeben.
Ab ca 1000 Zeichen in Get Parametern ist sowieso Schluss.
gibts dazu hard facts?
Naja...
1. den Namensraum mit Variablen zu zu donnern, deren Namen man noch nicht mal kennt, ist dumm.
2. das kann zu unerwünschten Seiten Effekten führen.
3. der Code wird schlecht lesbar
4. was sollen deine Nachfolger von dir denken
5. Du selbst kannst den Code nach 2 Jahren nicht mehr lesen.
6. Alles was man mit VarVars machen kann, kann man auch per Arrays erledigen. Ohne Ausnahme und viel übersichtlicher.
7. Code mit VarVars ist schlecht dokumentierbar
VarVars und Goto haben zwei Sachen gemeinsam.
1. es sind erlaubte "Sprachmittel"
2. wenn man irgendwie darauf verzichten kann, dann sollte man es auch tun.
Bedenke dabei das typische Anfänger Verhalten:
Wenn man einmal begriffen hat, wie ein Hammer funktioniert, dann sieht die ganze Welt plötzlich wie ein Nagel aus.
Der juergen hat ganz andere Probleme. Die VarVars hat er sich nur als Rettungsanker gesucht, weil es irgendwie nicht weiter ging. Und jetzt schraubt er damit am falschen Ende rum.
PS: (hard facts, aus dem Nähkästchen)
In den Teams, in denen ich bisher mitwirken durfte, hagelte es Einläufe, bis zu Kündigung, wenn einer Code mit VarVars abgeliefert hat.
PS2:
warum hälst du dich plötzlich bei der diskussion zurück?
Habe noch mehr zu tun, als nur hier irgendwelche Grundsatzdiskussionen zu führen.
cortex
29.09.2009, 13:09:20
@doku: prima - deine argumentation ist für mich persönlich tragbar und spiegelt meine eigenen bedenken wider.
cx
Ab ca 1000 Zeichen in Get Parametern ist sowieso Schluss.
Naja...
1. den Namensraum mit Variablen zu zu donnern, deren Namen man noch nicht mal kennt, ist dumm.
2. das kann zu unerwünschten Seiten Effekten führen.
3. der Code wird schlecht lesbar
4. was sollen deine Nachfolger von dir denken
5. Du selbst kannst den Code nach 2 Jahren nicht mehr lesen.
6. Alles was man mit VarVars machen kann, kann man auch per Arrays erledigen. Ohne Ausnahme und viel übersichtlicher.
7. Code VarVars ist schlecht dokumentierbar
VarVars und Goto haben zwei Sachen gemeinsam.
1. es sind erlaubte "Sprachmittel"
2. wenn man irgendwie darauf verzichten kann, dann sollte man es auch tun.
Bedenke dabei das typische Anfänger Verhalten:
Wenn man einmal begriffen hat, wie ein Hammer funktioniert, dann sieht die ganze Welt plötzlich wie ein Nagel aus.
Der juergen hat ganz andere Probleme. Die VarVars hat er sich nur als Rettungsanker gesucht, weil es irgendwie nicht weiter ging. Und jetzt schraubt er damit am falschen Ende rum.
PS: (hard facts, aus dem Nähkästchen)
In den Teams, in denen ich bisher mitwirken durfte, hagelte es Einläufe, bis zu Kündigung, wenn einer Code mit VarVars abgeliefert hat.
PS2:
Habe noch mehr zu tun, als nur hier irgendwelche Grundsatzdiskussionen zu führen.
@DokuLeseHemmung
Danke, für diese nette zusammenfassung
hast es auf den punkt gebracht.
kann dir nur recht geben.
@DokuLeseHemmung - PS2
Kann i dir a nur recht geben, hab auch andere baustellen :)
@juergen
Überlege nomal dein System.
man kann das sicher besser lösen, als mit einer Getvariable
siehe beiträge darüber
PS: Iframes sind ned so toll
cortex
29.09.2009, 13:15:12
Habe noch mehr zu tun, als nur hier irgendwelche Grundsatzdiskussionen zu führen.
1. hand aufs herz: das tust du sonst auch ganz gern
2. meines erachtens nach geht das über eine grundsatzfrage hinaus
3. ich habe gefragt - ausnahmsweise
cx
DokuLeseHemmung
29.09.2009, 13:20:28
@cortex
Ja, alles OK.
Ich kann mich nur nicht vierteilen...(zumindest nicht jederzeit)
Aber, wie stehst du zu meiner Argumentation?
Ist sie nachvollziehbar?
EDIT:
OK, ist schon beantwortet!
(gerade erst gesehen, ist heute alles viel zu schnell für mich)
cortex
29.09.2009, 13:23:39
[...] wie stehst du zu meiner Argumentation?
Ist sie nachvollziehbar?
prima - deine argumentation ist für mich persönlich tragbar und spiegelt meine eigenen bedenken wider.
cx
[edit: welch chaos heute .-]
cx
feuervogel
29.09.2009, 13:37:41
gibts dazu hard facts?
cx
ja:
<?php
$_meine_neue_Variable = '_'.$_GET['var'];
$_test = "ganz_geheim";
$_b = "a";
echo $$_meine_neue_Variable;
?>
wenn du ?var=b aufrufst, gibtsk eine probleme, aber bei ?var=test schon.
grundsätzlich lässt sich sagen, dass (i)frames und dynamische programmierung ganz schnell ganz kompliziert werden können.
juergen
29.09.2009, 15:54:57
Hallo Jungs,
ich habe zwar keine Ahnung von was Ihr da geredet habt aber ich gehe davon aus das meine Idee nicht so gut war.
$_meine_Variable = "$".$_GET['_meine_Variable'].";
echo $$_meine_Variable;
// Das würde funktionieren !
Was ist da unsicher? Ich möchte es nur verstehen!
Also in der Variablen ($_meine_Variable) ist nur belangloser Text (Französisch und Spanisch) und eventuell ein oder zwei Bilder im Muster wie hier: <img src='www.seite.de/img/bild.jpg' class='images' border='0'>
Im Text gibt es das Hochkomma welches mir die größten Probleme macht!
feuervogel
29.09.2009, 19:46:03
Hallo Jungs,
ich habe zwar keine Ahnung von was Ihr da geredet habt aber ich gehe davon aus das meine Idee nicht so gut war.
$_meine_Variable = "$".$_GET['_meine_Variable'].";
echo $$_meine_Variable;
// Das würde funktionieren !
Was ist da unsicher? Ich möchte es nur verstehen!
Also in der Variablen ($_meine_Variable) ist nur belangloser Text (Französisch und Spanisch) und eventuell ein oder zwei Bilder im Muster wie hier: <img src='www.seite.de/img/bild.jpg' class='images' border='0'>
Im Text gibt es das Hochkomma welches mir die größten Probleme macht!
schau dir doch noch mal mein beispiel ganz genau an. wenn das ganze unvorsichtig programmiert ist, kann man damit inhalte auslesen, die man nicht auslesen sollte.
R4Zz0R
29.09.2009, 22:37:43
Kurze zwischenfrage.
wenn eine variable ausgelesen werden kann, weil sie als text von php ausgegeben wird
ist es doch auch sicher möglich diese einah zu ändern und dann die seite mit dem neuen inhalt der variable aufzurufen oder nicht ??
Also somit theoretisch auch schädlichen code einzufügen.
Oder habe ich da was falsch verstanden?
MFG
R4Zz0R
feuervogel
29.09.2009, 23:19:13
Kurze zwischenfrage.
wenn eine variable ausgelesen werden kann, weil sie als text von php ausgegeben wird
ist es doch auch sicher möglich diese einah zu ändern und dann die seite mit dem neuen inhalt der variable aufzurufen oder nicht ??
Also somit theoretisch auch schädlichen code einzufügen.
Oder habe ich da was falsch verstanden?
MFG
R4Zz0R
ich wüsste nicht wie.
DokuLeseHemmung
29.09.2009, 23:31:29
Da der TE HTML über GET transportieren möchte, ergibt sich automatisch die Möglichkeit, vom Client aus JS einzuschleusen. Je nach dem was weiter damit passiert, sind XSS Attacken durchaus möglich.
R4Zz0R
29.09.2009, 23:36:51
Mal um den code besser zu verstehen (Da ich mir php selbst anlerne weils einfach nen hobby ist).
Interpretier ich den mal so wie ich ihn verstehe.
//Die vatiable die ausgegeben werden soll von php $_meine_Variable
$_meine_Variable = "$".$_GET['_meine_Variable'].";
//Wird über "$" als vorzeichen .$_GET<-Methode['_meine_Variable'].";<-eingeklammert der
//name der variablen. an das
echo $$_meine_Variable;
// weitergegeben und im quelltext als $_meine_Variable mit ausgegeben.
Wenn nun jemand hingeht und einen code schreibt der diese variable mit anderen daten füllt
und dann daten abruft wie zb die phpinfo oä.
Dann würde er wichtige informationen über den server bekommen können, oder nicht?
MFG
R4Zz0R
DokuLeseHemmung
29.09.2009, 23:43:25
Das sehe ich auch nicht so direkt.
Die phpinfo() Daten können zwar hilfreich bei einem Angriff sein, sind für sich alleine aber nicht ausreichend. Was nicht heißen soll, dass man überhaupt mit dem Code da ran kommt.
Ausserdem sind mit dem Code keine verschachtelten Arrays auslesbar.
R4Zz0R
29.09.2009, 23:59:05
Das sehe ich auch nicht so direkt.
Die phpinfo() Daten können zwar hilfreich bei einem Angriff sein, sind für sich alleine aber nicht ausreichend. Was nicht heißen soll, dass man überhaupt mit dem Code da ran kommt.
Ausserdem sind mit dem Code keine verschachtelten Arrays auslesbar.
Sry stimmt hatte vergessen das er ja ersteinmal den code auf die auf dem serverliegende datei bringen müsste. Und das schafft man mit dem code nicht.
War mein fehler hab den falsch verstanden.
Thx für die nette denkhilfe....
MFG
R4Zz0R
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.