[TYPO3-german]eingeloggten FE User an externes PHP script übergeben

JoH asenau info at cybercraft.de
Sat Nov 7 11:45:12 CET 2009


> Ich würde im Übrigen nicht das "username"-Attribut des fe_users
> verwenden sondern die uid. Wenn eine Tabelle schon einen
> Primärschlüssel hat (und TYPO3 legt da grundsätzlich *immer* die uid
> an) sollte man ihn auch verwenden. Ein Integer lässt sich leichter auf
> Validität prüfen als ein String, in der Datenbank liegt auf der uid
> (hoffentlich) ein Index sodass die Datenbankanfrage schneller geht und
> sobald du mit anderen benutzerbezogenen TYPO3-Datenbanktabellen
> arbeitest wirst du dort ausschließlich die uid des fe_users als
> Fremdschlüssel vorfinden.

Zudem sollte diese uid _niemals_ aus irgendeiner GET- oder POST-Variable
gezogen werden, die in diesem Fall auch noch per JavaScript manipuliert
wird. Damit öffnest Du entsprechenden Angreifern Tür und Tor.
Die Daten des aktuell eingeloggten Users einer bestimmten Session befinden
sich in $GLOBALS['TSFE']->fe_user und bis dahin solltest Du das Framework
mindestens instanziiert oder entsprechende Session-Tabellen angezapft haben.

Das gilt übrigens auch für entsprechende TYPO3-Extensions, die das Framework
komplett nutzen aber stattdessen teilweise mit $this->piVars['loginUser']
oder Ähnlichem arbeiten. Das ist selbst wenn Du intval() verwendest, um
SQL-Injections auszuschließen, immer noch böse, denn Deine Extension ließe
sich so jede X-beliebige uid als "eingeloggter User" unterjubeln.

HTH

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your gob sometimes!)
Dieter Nuhr, German comedian
Xing: http://contact.cybercraft.de
Twitter: http://twitter.com/bunnyfield
TYPO3 cookbook (2nd edition): http://www.typo3experts.com




More information about the TYPO3-german mailing list