Opened 6 years ago
Closed 3 years ago
#1811 closed Bug/Fehler (fixed)
urldecode() auf GET-Parameter
| Reported by: | noRiddle | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.8.0 |
| Component: | Shop | Version: | 2.0.5.1 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Es wird auch in der aktuellen Shop-Version 2.0.5.1 immer noch urldecode() auf GET-Parameter angewendet (z.B. in der /advanced_seacrh_result.php).
Dazu sagt das Manual eindeutig:
"
WarnungDie Superglobals $_GET und $_REQUEST sind bereits dekodiert. Die Verwendung von urldecode() mit Elementen von $_GET oder $_REQUEST kann daher zu unerwarteten und gefährlichen Resultaten führen.
"
Das Thema wurde schon mehrfach im Forum angesprochen (u.A. von meiner Wenigkeit, auch im Experten-Forum, von Bonsai und von hpzeller), ist dann aber wohl untergegangen.
Da bislang auch mit den diversen urldecode() auf GET-Parameter nichts aufgefallen ist bei Shop-Betrieb kann man das Thema vielleicht nach hinten schieben.
Die Aussage im PHP-Manual bzgl. "unerwartet" und "gefährlich" ist ja auch nicht besonders informativ. Allerdings steht wohl fest, daß GET-Parameter bereits automatisch dekodiert sind.
Gruß,
noRiddle
Attachments (0)
Change History (6)
comment:1 by , 6 years ago
| Milestone: | → modified-shop-2.0.5.2 |
|---|---|
| Version: | → 2.0.5.1 |
comment:2 by , 6 years ago
comment:3 by , 6 years ago
Hier noch Links:
- Experten-Forum: https://www.modified-shop.org/forum/index.php?topic=37178
- PHP-Manual mit Beispiel eines Hacks: https://www.php.net/manual/de/function.urldecode.php#48481
Wie ich im verlinkten Experten-Thread auch schrieb entsteht die Gefährlichkeit bei Nutzung der decodeten GETs für DB-Queries. Das Thema ist also durchaus ernst zu nehmen.
Gruß,
noRiddle
comment:4 by , 6 years ago
| Milestone: | modified-shop-2.0.5.2 → modified-shop-2.0.6.0 |
|---|
comment:5 by , 4 years ago
Ich möchte das hier nochmals in Erinnerung bringen.
urldecode() auf $_GET und $_REQUEST ist gefährlich.
Man kann damit Quotes in eine Query einschleusen.
Evtl. sollte man auch darüber nachdenken im Inputfilter Schlüsselworte wie SELECT, INSERT, UPDATE, DROP und insbesondere UNION herauszufiltern.
Daß in einer nächsten Major Version Prepared Statements implementiert werden sollten wollen wir hier lediglich nebenbei erwähnen.
Gruß,
noRiddle

...und das unnötige urldecode() auf z.B. $_GET['keywords'] bei der Suchfunktion des Shops die Suche evtl. sogar langsamer macht.
Gruß,
noRiddle