Opened 20 months ago

Last modified 2 weeks ago

#1811 new Bug/Fehler

urldecode() auf GET-Parameter

Reported by: noRiddle Owned by: somebody
Priority: normal Milestone: modified-shop-2.0.7.0
Component: Shop Version: 2.0.5.1

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 (5)

comment:1 Changed 20 months ago by Tomcraft

  • Milestone set to modified-shop-2.0.5.2
  • Version set to 2.0.5.1

comment:2 Changed 20 months ago by anonymous

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

Gruß,
noRiddle

comment:3 Changed 20 months ago by noRiddle

Hier noch Links:

  1. Experten-Forum: https://www.modified-shop.org/forum/index.php?topic=37178
  2. 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 Changed 20 months ago by GTB

  • Milestone changed from modified-shop-2.0.5.2 to modified-shop-2.0.6.0

comment:5 Changed 2 weeks ago by noRiddle

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

Add Comment

Modify Ticket

Action
as new
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.