"We are back" « oc.at

php + $_POST Frage

Facetious 31.01.2005 - 09:51 744 13
Posts

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
Hi Leute!

Was genau wird in einer $_POST Variable gespeichert?
nur der Value? oder auch andere eigenschaften wie zB label

Bsp: Kann ich bei einer geposteten Select box $_POST['selfoo'], welche den wert "xyz", aber die Beschriftung "Bla" hat, das "Bla" rausbekommen?

mfg und thx Facetious

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25664
nur value

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
gibts eine möglichkeit andere eigenschaften über php zu bekommen?

mfg Facetious

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25664
nein, aber du kannst per <input type=hidden.. die labels mit einer gewissen namenskonvention versehen und dann automatisiert aus dem post array holen. klingt glaub ich mühsamer als es ist.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von Facetious
gibts eine möglichkeit andere eigenschaften über php zu bekommen?

mfg Facetious
Sicher geht das. Schreib doch einfach einen HTML-Parser...

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
du kannst den value zerst in einer variable mitspeichern und entweder per hidden field oder mittels Adressleiste ($_GET) übertragen.

die $_GET variante is aber allerdings nur bei kurzen texten anzuraten ;)

PHaX

Little Overclocker
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 53
Ausserdem stellt die _GET Variante ein Sicherheitsrisiko dar, da jeder den Text ändern kann!

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von PHaX
Ausserdem stellt die _GET Variante ein Sicherheitsrisiko dar, da jeder den Text ändern kann!
Red' kan Schwachfug. GET hat das gleiche Risiko, wie POST. Die Daten kommen alle vom User, wer sich hier _irgendwo_ eine Blöße gibt ist selbst schuld.

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von PHaX
Ausserdem stellt die _GET Variante ein Sicherheitsrisiko dar, da jeder den Text ändern kann!

es gab vor einiger zeit einen thread wo genau so eine sicherheitslücke aufgezeigt wurde.

imo eigentlich sollte jeder der sich halbwegs mit der materie beschäftigt im klaren sein, das einfach einmal von grund auf jeder input böse ist ;)

PHaX

Little Overclocker
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 53
@watchout: Aber erklär mal jemand, wie er den Referer ändert um die POST Inhalte einzuschmuggeln. Einen GET Request in der Addressleiste zu ändern geht um Welten einfacher.
Das als Schwachfug zu bezeichnen ist übertrieben. Aber wenn du dein Online-Banking System mit GET machen möchtest - viel Spaß.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
von allen parameter-fake-möglichkeiten ist GET vermutlich am einfachsten (aber ein ändern der adresszeile schickt keinen reffer mit)

hingegen ist das faken von post-parameter (je nach umständen) mit/ohne refferer nicht signifikant schwerer als GET mit refferer. (zb mit javascript [*1], aber es gibt ganz viele möglichkeiten)

daher ist die policy "jede eingabe ist böse" imho die einzig richtige.

*1) also wenn man sich nicht mit netcat oder solchen tools spielen will (und einem ein lokal abgespeichertes formular wegen des reffers nicht genügt), der kann zb über javascript:document.form[...].feldname.value='xyz'; in der adresszeile on the fly werte ändern.

man kann sich natürlich auch über javascript:document.getElementById(...).innerHTML='<form action=post>....' auch ein ganz eigenes formular auf jeder beliebigen seite nachbauen und abschicken.


über document.cookies lassen sich diese auch super auslesen und manipulieren.

man braucht also keien packetsniffer oder -factories um das alles zu machen.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von PHaX
@watchout: Aber erklär mal jemand, wie er den Referer ändert um die POST Inhalte einzuschmuggeln. Einen GET Request in der Addressleiste zu ändern geht um Welten einfacher.
Das als Schwachfug zu bezeichnen ist übertrieben. Aber wenn du dein Online-Banking System mit GET machen möchtest - viel Spaß.
Also eigentlich hab ich Atrox' Post nicht mehr viel hinzuzufügen...
Aber WTF? Wie kommst du jetzt auf ein Onlinebanking-System? Wenn du auf das in der Adressleiste sichtbare passwort anspielst - sicher, das ist nicht die feine Art, und ich hab das auch nie behauptet, dass ich das so machen würde... Aber, ich möchte sehen wie du deinen TAN-Brief auspackst wenn jemand hinter dir steht :p

PHaX

Little Overclocker
Avatar
Registered: Oct 2001
Location: Vienna
Posts: 53
Zitat von watchout
Wenn du auf das in der Adressleiste sichtbare passwort anspielst - sicher, das ist nicht die feine Art, und ich hab das auch nie behauptet, dass ich das so machen würde...

Wenn ich die Wahl zwischen POST und GET habe nehme ich POST - das ist alles was ich sagen wollte. Können wir das Thema abhaken und uns wieder den wirklich wichtigen Dingen zuwenden :cool:

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4504
Es gibt gute Gruende auch nicht POST zu nehmen. Z.b. bei Suchabfragen auf einer Webseite, damit diese gebookmarkt werden kann. Jedes fuer seinen Zweck halt.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz