Modify

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 Torsten Riemer, 6 years ago

Milestone: modified-shop-2.0.5.2
Version: 2.0.5.1

comment:2 by anonymous, 6 years ago

...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 by noRiddle, 6 years ago

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 by Gerhard Waldemair, 6 years ago

Milestone: modified-shop-2.0.5.2modified-shop-2.0.6.0

comment:5 by noRiddle, 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

comment:6 by Gerhard Waldemair, 3 years ago

Resolution: fixed
Status: newclosed

In 15251:

fix #1811 - remove urldecode from URL parameters

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.