Variable senden ohne den Inhalt bekant geben?
Andreas
- php
Hallo,
ich habe jetzt schon einiges versucht um eine Variable versteckt zu senden.
Es soll ein Formular ausgefüllt werden und eine Variable $passwort mit übermittelt werden.
In der $passwort soll natürlich das Passwort stehen, dieses soll aber für keinen Sichtbar sein.
Ist dies überhaupt möglich, wenn ja bitte wie?
MfG. Andreas
Hi,
Es soll ein Formular ausgefüllt werden und eine Variable $passwort mit übermittelt werden.
es existiert immer noch kein Weg, über HTTP eine Variable zu übertragen. Lediglich Parameter können es sein.
In der $passwort
Btw: Recherchiere bitte im Archiv über die Sicherheitsrisiken von PHP, sofern bei einem Eingabefeld namens "passwort" innerhalb Deiner Scripts tatsächlich eine Variable dieses Namens verfügbar sein sollte.
Ist dies überhaupt möglich, wenn ja bitte wie?
Der Client überträgt an den Server exakt das, was er hat.
Damit der Client etwas haben kann, muss es ihm entweder vom Benutzer eingegeben oder vom Server übermittelt worden sein.
Weder der Client noch HTTP verfügen über eine Form der Magie.
Cheatah
würde denn eine Übertragung mit
header("Location: http://www.domain.de/$passwort=123&...Variablen")
sicher sein?
Ich könnte mir solch ein Script schreiben an welches ich die fehlenden Variablen übermitel.
MfG. Andreas
Hi,
würde denn eine Übertragung mit
header("Location: http://www.domain.de/$passwort=123&...Variablen")
sicher sein?
*das* *sind* *keine* *Variablen!*
Und was verstehst Du unter "sicher"? Es ist verhältnismäßig gesichert, dass der Client die _Parameter_ erhält, ja. Wobei ich unterstelle, dass Du dort kein Dollar-, sondern ein Fragezeichen verwenden willst.
Ich könnte mir solch ein Script schreiben an welches ich die fehlenden Variablen übermitel.
Du wirst _niemals_ ein Script schreiben können, welches Variablen übermittelt. Das kann niemand, weil es nicht geht.
Cheatah
Hallo,
ja das sollte ein Fragezeichen statt ein Dollarzeichen sein.
Wenn ich an eine url /?passwort=123 anhänge übertrage ich schon Daten die zum bei Empfänger als Variablen erkannt werden.
Mit Variablen übermitteln meine ich das erzeugen von Variablen beim Empfänger.!!
Andreas
Hi,
Wenn ich an eine url /?passwort=123 anhänge übertrage ich schon Daten die zum bei Empfänger als Variablen erkannt werden.
nein, werden sie nicht. Du überträgst Daten, ja, aber ob der Empfänger sie als irgendwas erkennen kann und will, und ob er sie dann in Form irgendwelcher Variablen umsetzt, ist absolut sein Bier.
Mit Variablen übermitteln meine ich das erzeugen von Variablen beim Empfänger.!!
Und eben dies ist nicht im mindesten irgendwie Teil von HTTP. Zudem solltest Du meine Äußerung in [pref:t=40497&m=221816] mit Bezug auf Sicherheitsrisiken _sehr_ ernst nehmen. Wenn in Deinem Script tatsächlich ohne Dein explizites Zutun Variablen erzeugt werden, dann hast Du ein Problem.
Cheatah
ich erkläre dir mal kurz die Funktionsweise.
Der Empfänger (ist immer der selbe) benötigt z.B. die Variablen: passwort, user, text, zum weiterverarbeiten.
Nun muß ich den Inhalt meiner Variablen zum Empfänger übertragen. Die Variable passwort die beim Empfänger erzeugt wird ist immer gleich. Es wird überprüft ob das übermittelte Passwort identisch mit dem dort vorhandenen ist.
Da ich nun das Passwort irgendwie rüber senden muß, so das es auch für keinen Sichtbar ist, habe ich gefragt wie dies möglich wäre.
Andreas
Hi,
ich erkläre dir mal kurz die Funktionsweise.
die ist mir durchaus klar. Das einzige, was zu verstehen ich Dir abverlange, ist:
Nun muß ich den Inhalt meiner Variablen zum Empfänger übertragen.
Du überträgst _niemals_ Variablen, sondern immer nur Parameter. Der Unterschied mag Dir nicht ersichtlich sein, wird Dir aber sicher irgendwann klar werden. Wenn Du soweit bist, wäre es vermutlich fatal für Dich zu glauben, Variablen hätten mit dem Vorgang irgendwas zu tun.
Ach so, was ich ebenfalls von Dir verlange ist, im Archiv nach den Sicherheitsrisiken zu recherchieren, die bei Dir augenscheinlich vorliegen.
Cheatah
ja ich verstehe und weiß jetzt das ich keine Variablen übertragen kann. Ich versende nur die Parameter und wenn beim empfänger nach $passwort gefragt wird wird dieser Parameter übergeben.
Das sollte doch jetzt stimmen! :)
Kannst du mir noch ein paar Suchbegriffe nennen nach denen ich suchen sollte.
Es gibt sicherlich noch Befehle die ich nicht kenne...
Andreas
Hi,
wenn beim empfänger nach $passwort gefragt wird wird dieser Parameter übergeben.
nein, $passwort ist (zumindest bei PHP) eine Variable - die nicht existieren sollte; es sei denn, Du deklarierst sie selbst.
Kannst du mir noch ein paar Suchbegriffe nennen nach denen ich suchen sollte.
Sicherheits[problem|risiko|leck], (Default-)Konfiguration, php.ini, Systemvariablen, das Erzeugen von Variablen dynamischen Namens im globalen Namespace/Scope.
Es gibt sicherlich noch Befehle die ich nicht kenne...
Natürlich, die gibt's auch dann noch, wenn Du Dich mit Fug und Recht als PHP-Profi bezeichnen kannst. In diesem Fall bist Du jedoch "nur" einer unsicheren Konfiguration erlegen, welche bei älteren PHP-Versionen defaultmäßig eingestellt war.
Cheatah
Ich empfehle dir:
Wende die POST Methode an und wandle dein Passwort vor senden in einen MD5 Code um ( siehe selfHTML Thema MD5 ). Auf der nächsten Seite vergleichst du den Code mit dem Code des eingestellten Passwortes. Das gute ist, dass der Code nicht mehr zu entschlüsseln ist.
Gruß
Hanno