Muss man bei einem Formular das Ziel angeben?
joerg
- php
0 Julian von Mendel0 joerg
0 Martin Hölter0 joerg0 Sven Rautenberg0 Cheatah0 joerg
0 Cheatah0 Cybaer
Hallo,
ich habe mal wieder ein php-spezifisches Problem:
Ich will Session-ID's übergeben, allerdings weder über cookies noch über die GET-Methode.
Stattdessen wollte ich ein verstecktes Formular einbauen in dem die Werte die übergeben werden sollen enthalten sind.
Allerdings besteht der Intern-Bereich aus fünf verschiedenen PHP-Dateien.
Nun weiß ich nicht in welchen Bereich der user als nächstes will - insofern kann ich dem hidden-Formular kein direktes Ziel angeben.
Egal wohin der user will (natürlich innerhalb des Internbereichs) - die Session-Daten sollen zur weiteren Auswertung mitgeschickt werden.
Ist das realisierbar mit der Post-Methode bzw. einem hidden-Formular?
MfG,
Jörg
Hi,
Egal wohin der user will (natürlich innerhalb des Internbereichs) - die Session-Daten sollen zur weiteren Auswertung mitgeschickt werden.
Ist das realisierbar mit der Post-Methode bzw. einem hidden-Formular?
du könntest einfach mehrere Formulare mit unterschiedlichem Target erzeugen, d. h. für jeden Link eines. Ich verstehe jedoch nicht, warum du das überhaupt machen willst, und weiße darauf hin, dass dein Vorhaben äußerst unelegant ist und die Website schlecht benutzbar macht. Auch Suchmaschinen werden deine Unterseiten dann nicht indizieren.
Schöne Grüße
Julian
du könntest einfach mehrere Formulare mit unterschiedlichem Target erzeugen, d. h. für jeden Link eines. Ich verstehe jedoch nicht, warum du das überhaupt machen willst, und weiße darauf hin, dass dein Vorhaben äußerst unelegant ist und die Website schlecht benutzbar macht. Auch Suchmaschinen werden deine Unterseiten dann nicht indizieren.
Das die Suchmaschinen meinen Internbereich nicht indizieren ist mir ganz recht ;).
Das mit den mehreren Formularen hab ich mir auch schon überlegt, aber es ist halt recht umständlich und unschön...
Hi,
du könntest einfach mehrere Formulare mit unterschiedlichem Target erzeugen, d. h. für jeden Link eines. Ich verstehe jedoch nicht, warum du das überhaupt machen willst, und weiße darauf hin, dass dein Vorhaben äußerst unelegant ist und die Website schlecht benutzbar macht. Auch Suchmaschinen werden deine Unterseiten dann nicht indizieren.
Das die Suchmaschinen meinen Internbereich nicht indizieren ist mir ganz recht ;).
Das mit den mehreren Formularen hab ich mir auch schon überlegt, aber es ist halt recht umständlich und unschön...
das ist durch dein katastrophal schwachsinniges Konzept bedingt, welches sich nicht sauber umsetzen lässt. Ich habe nicht verstanden, was gegen die Lösung mit GET als Alternative bei deaktivierten Cookies spricht.
Schöne Grüße
Julian
das ist durch dein katastrophal schwachsinniges Konzept bedingt, welches sich nicht sauber umsetzen lässt. Ich habe nicht verstanden, was gegen die Lösung mit GET als Alternative bei deaktivierten Cookies spricht.
Schöne Grüße
Julian
"Da man hier einfach durch Weitergabe der Session-ID die Session übernehmen. D.h. ein anderer Benutzer könnte, in dem er z.B. die URL samt Session-ID im IRC gepastet bekommt, diese Session übernehmen und auch die Daten des eigentlichen Besitzers einsehen. Um solche Effekte zu vermeiden sind zum einen Cookies nicht schlecht, da hier keine Session-ID in der URL mitgegeben werden muß. Allerdings sind Cookies auch kein Standard, und man würde jeden ausschliessen, der Cookies verweigert."
Deswegen wollte ich hier nachfragen ob es eine saubere Methode gibt Daten an verschiedene URL's per Post zu übergeben -
so katastrophal schwachsinnig finde ich die Frage nicht ...
Hi,
"Da man hier einfach durch Weitergabe der Session-ID die Session übernehmen. D.h. ein anderer Benutzer könnte, in dem er z.B. die URL samt Session-ID im IRC gepastet bekommt, diese Session übernehmen und auch die Daten des eigentlichen Besitzers einsehen. Um solche Effekte zu vermeiden sind zum einen Cookies nicht schlecht, da hier keine Session-ID in der URL mitgegeben werden muß. Allerdings sind Cookies auch kein Standard, und man würde jeden ausschliessen, der Cookies verweigert."
Deswegen wollte ich hier nachfragen ob es eine saubere Methode gibt Daten an verschiedene URL's per Post zu übergeben -
so katastrophal schwachsinnig finde ich die Frage nicht ...
Du hast danach gefragt, ob man "bei einem Formular das Ziel angeben" muss. Ja, muss man.
Du kannst standardmäßig Cookies verwenden, bei deaktivierten Cookies auf GET zurückgreifen und zum Beispiel beim Login eine Möglichkeit mit Checkbox anbieten, die Session mit der IP/dem User Agent zu koppeln (muss ausschaltbar sein, da sonst User mit wechselnden Proxys ausgeschlossen werden). Wenns dir total wichtig ist, machst du halt noch einen Hinweis dazu, der User solle nicht wild der restlichen Welt seine Session-ID schicken. Wenn es sich um einen Login handelt, könntest du statt Sessions auch HTTP-Authentifzierung nutzen. Die wäre sicher und braucht keine Cookies.
Schöne Grüße
Julian
Hi!
ich habe mal wieder ein php-spezifisches Problem:
Ich will Session-ID's übergeben, allerdings weder über cookies noch über die GET-Methode.
Warum denn das? Welchen Vorteil siehst du in der Übergabe per POST?
Gruß aus Iserlohn
Martin
Warum denn das? Welchen Vorteil siehst du in der Übergabe per POST?
Man kann die die übergebenen Daten nicht an der URL ablesen und auch User die cookies deaktiviert haben können weitersurfen ...
Moin!
Warum denn das? Welchen Vorteil siehst du in der Übergabe per POST?
Man kann die die übergebenen Daten nicht an der URL ablesen und auch User die cookies deaktiviert haben können weitersurfen ...
Es geht um deinen internen Bereich. Wer da ohne Cookies zugreift, dürfte relativ einfach auf die Notwendigkeit hinzuweisen sein, dass es ohne Cookies (oder eben nur mit Session-ID in der URL) nicht geht.
Sicherheitsgewinn erhälst du dadurch jedenfalls keinen.
- Sven Rautenberg
Hi,
Warum denn das? Welchen Vorteil siehst du in der Übergabe per POST?
Man kann die die übergebenen Daten nicht an der URL ablesen und auch User die cookies deaktiviert haben können weitersurfen ...
Es geht um deinen internen Bereich. Wer da ohne Cookies zugreift, dürfte relativ einfach auf die Notwendigkeit hinzuweisen sein, dass es ohne Cookies (oder eben nur mit Session-ID in der URL) nicht geht.
Sicherheitsgewinn erhälst du dadurch jedenfalls keinen.
sicher nicht? Wenn Cookies deaktiviert sind, und die Anwendung ohne Cookies funktionieren soll, wird durch die Übergabe per POST Session-Fixation (http://www.acros.si/papers/session_fixation.pdf) verhindert. Es kann durch das unvorsichtige Kopieren der URL durch den Benutzer so nicht versehentlich die Session-ID an einen Fremden weitergegeben werden.
Schöne Grüße
Julian
Hi,
Warum denn das? Welchen Vorteil siehst du in der Übergabe per POST?
Man kann die die übergebenen Daten nicht an der URL ablesen
die Frage war, welchen _Vorteil_ Du siehst.
Cheatah
die Frage war, welchen _Vorteil_ Du siehst.
Och, für mich ist das schon ein Vorteil;
Es kann nicht passieren das user URL's mit, für die Authentifizierung relevante Daten, irgendwo reinpasten (die eben wegen der GET-Methode da dranhängen) -
und da auch schon die Möglichkeit gegeben ist die Daten in einem Cookie zu speichern will ich auch denjenigen die keine Cookies akzeptieren die Möglichkeit geben trotzdem sich in dem Bereich frei zu bewegen.
Hi there,
Och, für mich ist das schon ein Vorteil;
das sieht nur so aus.
Es kann nicht passieren das user URL's mit, für die Authentifizierung relevante Daten, irgendwo reinpasten (die eben wegen der GET-Methode da dranhängen)
Es ist extrem gefährlich, die eigene Ignoranz als Maßstab für sicherheitsrelevantes Programmieren zu nehmen. Glaubst Du wirklich, daß jemand, der oben Beschriebenes von Dir nicht gewolltes nicht machen würde, nur weil er die URL in der Browsereingabezeile nicht sieht? Hoffentlich willst Du nicht auch noch durch "Ausschalten" des Rechtsklicks verhindern, daß man eben diese Url dem Quelltext entnimmt...
Es ist extrem gefährlich, die eigene Ignoranz als Maßstab für sicherheitsrelevantes Programmieren zu nehmen. Glaubst Du wirklich, daß jemand, der oben Beschriebenes von Dir nicht gewolltes nicht machen würde, nur weil er die URL in der Browsereingabezeile nicht sieht? Hoffentlich willst Du nicht auch noch durch "Ausschalten" des Rechtsklicks verhindern, daß man eben diese Url dem Quelltext entnimmt...
Natürlich will ich nicht den Rechtsklick verhindern.
Ich versteh auch nicht ganz was das mit Ignoranz zu tun hat wenn man das sog. Session-Hijacking verhindern will, was ich durchaus als Sicherheitslücke deklarieren würde.
Hello,
Ich versteh auch nicht ganz was das mit Ignoranz zu tun hat wenn man das sog. Session-Hijacking verhindern will, was ich durchaus als Sicherheitslücke deklarieren würde.
Session-Hijacking kannst Du als "Willi" überhaupt nicht verhindern. Das Internet ist durchaus Hierarchisch organisiert und kontrolliert. Jeder Hansel, der irgendwie Zugriff auf einen Hob hat, kann Deine Pakete rausfischen und mitlesen.
Es kommt nur darauf an, ob ein Interesse daran besteht.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom

Hi,
Nun weiß ich nicht in welchen Bereich der user als nächstes will - insofern kann ich dem hidden-Formular kein direktes Ziel angeben.
natürlich kannst Du das.
Ist das realisierbar mit der Post-Methode bzw. einem hidden-Formular?
Wenn Du Dir den strikten Unterschied zwischen Dateien und Ressourcen bzw. Dateinamen und URIs - genauer gesagt das völlige Fehlen jedweden Zusammenhangs dazwischen - bewusst machst, dann ist Dir klar, dass ein solches Problem überhaupt niemals existiert. Viel wichtiger ist Deine Frage im Subject[1]. Die Antwort lautet: Ja, das action-Attribut ist im <form>-Element required, was aber nicht das geringste mit PHP zu tun hat.
Cheatah
[1] Die dort nicht hin gehört. Das Subject beschreibt das _Thema des Teilthreads_.
Hello,
Die Antwort lautet: Ja, das action-Attribut ist im <form>-Element required, was aber nicht das geringste mit PHP zu tun hat.
Wie kommst Du darauf?
Die HTML-Spezifiation verlangt zwar eine bestimmte Form, z.B. eine URL nach RFC1738, die lässt aber nun ausdrücklich "relative Verweise" zu:
2.3 Hierarchical schemes and relative links
In some cases, URLs are used to locate resources that contain
pointers to other resources. In some cases, those pointers are
represented as relative links where the expression of the location of
the second resource is in terms of "in the same place as this one
except with the following relative path". Relative links are not
described in this document. However, the use of relative links
depends on the original URL containing a hierarchical structure
against which the relative link is based.
Some URL schemes (such as the ftp, http, and file schemes) contain
names that can be considered hierarchical; the components of the
hierarchy are separated by "/".
Wenn also das Action-Attribut nun leer bleibt, bedeutet das, dass die Ressource der Formaction am selben Ort zu suchen ist, wie die letzte (zur Zeit "aktive").
Das haben wir hier auch schon mal ausführlich diskutiert. Da ging es primär darum, ob im Aktionattribut als einziges ein leerer Anker stehen darf.
Der Unterschied zwischen einm vollständig leeren Action-Attribut und einem mit '#' besteht darin, dass im ersten Fall auch die (alten) GET-Parameter wieder mitgesendet werden, im zweiten Fall aber nicht.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom

Hallo Tom.
Die Antwort lautet: Ja, das action-Attribut ist im <form>-Element required, was aber nicht das geringste mit PHP zu tun hat.
Wie kommst Du darauf?
[…]
Wenn also das Action-Attribut nun leer bleibt, bedeutet das, dass die Ressource der Formaction am selben Ort zu suchen ist, wie die letzte (zur Zeit "aktive").
Cheatah hat nichts Gegenteiliges behauptet.
Ihm ging es nicht um den Inhalt des action-Attributes sondern um die zwingende Existenz des selbigen.
Einen schönen Samstag noch.
Gruß, Ashura
Hello,
Die Antwort lautet: Ja, das action-Attribut ist im <form>-Element required, was aber nicht das geringste mit PHP zu tun hat.
Wie kommst Du darauf?
[…]
Wenn also das Action-Attribut nun leer bleibt, bedeutet das, dass die Ressource der Formaction am selben Ort zu suchen ist, wie die letzte (zur Zeit "aktive").Cheatah hat nichts Gegenteiliges behauptet.
Ihm ging es nicht um den Inhalt des action-Attributes sondern um die zwingende Existenz des selbigen.
*oh, guten Morgen*
Ich hatte es versehentlich auf den Inhalt des Attributes bezogen.
Der darf aber durchaus ein Leerstring sein.
Ok, nun sind die Unklarheiten hoffentlich auch für Andere beseitigt.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom

Hi,
Ist das realisierbar mit der Post-Methode bzw. einem hidden-Formular?
Nimm halt statt einem Formular deren 5 (mit dem jeweils passenden Ziel) zu nehmen (und den Submit-Button als Link zu stylen)?
Gruß, Cybaer