blu3r4y schrieb:
@ Daaron:
Huch, von welcher massiven Lücke sprichst du da? ô.O
Ach, PHP hatte n großes Oops gebaut. Es betraf zum Glück wenn ich mich richtig erinnere nur CGI und evtl. auch FastCGI, nicht mod_php oder mod_suphp. Daher war der tatsächliche Schaden eher dünn.
Der Fehler war irgendwo in der Behandlung von Parametern, manches wurde wohl direkt an den Parser durchgeschleift, was ihn gar nicht erreichen darf. Wenn du jetzt auf einem betroffenen System index.php?- aufgerufen hast, dann sahst du den Sourcecode der index.php. Was das bei nem Aufruf einer config.php bewirkt is klar. Über andere Parameter konnte man auch gezielt Fremdcode in den Parser einschleusen und damit direkt das System großflächig kompromittieren.
blu3r4y schrieb:
Naja,
GET-Parameter wäre das allereinfachste. Dabei kannst du z.B. einfach so Parameter mitschicken:
http://www.host.com/script.php?username=root&password=test
Keine gute Idee. Klar, auch ein POST-Request überträgt das Passwort im Klartext, aber immerhin steht es dann nicht im serverweiten access.log drin.
Besser wäre eh Session Handling. Jede App zündet einmalig einen Login (z.B. überträgt sie per POST eine AppID an das Script) und erhält dafür eine Session-ID (für einige Stunden, Tage,...).
POST-Parameter übergibst du aber anders als GET-Parameter. Da musst du schauen wie die konkrete Umsetzung für deine Android App aussieht. GET wäre für dich somit das einfachere, weil du die Daten nur an die URL dranhängen müsstest. POST verwendet man eher bei größeren zu sendenden Datenmengen.
Die Wahl zwischen POST und GET unterliegt eher weniger den Datenmengen als Betrachtungsweisen, WAS übertragen werden soll.
GET ist eher dazu gedacht, eindeutige Ressourcen anzusprechen. Wenn du 2x dieselben GET-Parameter überträgst, dann kommt im Idealfall beide Male dasselbe raus. Genauso kannst du einen Link mit GET-Parametern auch jemand anderem schicken. Wenn er den Link aufruft wird er idealerweise dasselbe sehen wie du. Ausgenommen sind natürlich personalisierte Inhalte der Seite bzw. Sachen, die einer Rechtebegrenzung unterliegen. aber wenn ich meinmaildienstleister.tld/index.php?site=inbox aufrufe, dann will ich garantiert im Posteingang landen und ihn auch bookmarken können. Mit einem POST-Request auf site=inbox gehts nicht.
POST ist eher dafür gedacht, Inhalte einmalig zu manipulieren. Formulare sind ein gutes Beispiel. Während man bei einer Suche GET nimmt (da hier eindeutige Daten abgerufen werden) wird man bei einem Foren-Beitrag POST nehmen. Ansonsten würde oben in der Adresszeile der ganze Beitrag stehen und, wenn man 4x Enter drückt, der Beitrag auch 4x Mal abgeschickt.