Paul Reinheimer über seine verlorene Liebe zu Hooks
Kommentare

Paul Reinheimers Liebe zu Hooks entbrannte über der Arbeit mit Code Igniter und Lithium und währte nur kurz. In beiden Frameworks verwendete er Hooks, um zu garantieren, dass Nutzer korrekt authentifiziert

Paul Reinheimers Liebe zu Hooks entbrannte über der Arbeit mit Code Igniter und Lithium und währte nur kurz. In beiden Frameworks verwendete er Hooks, um zu garantieren, dass Nutzer korrekt authentifiziert und der Zugriff auf eine Seite genehmigt wurde. Dies ist relativ simpel über die Controller-Ebene umzusetzen: Paul listete dafür die öffentlich zugänglichen Methoden in einer Property auf (public = array(‚login‘);). In Code Igniter ist ein ähnliches Vorgehen möglich: Über die Verwendung des post_controller_constructor Hook kann eine spezifische Klasse und ein Controller aufgerufen werden. Nach dem Aufruf und der Instantiierung des Controllers sind ähnliche Konfigurationen möglich. Somit waren Systeme viel effektiver zu pflegen, benötigten viel weniger Code, und man musste einzelne Controller nicht mit Zeilen-weisem Code aufblasen.

Klingt doch eigentlich nach einer klassischen „Lovestory“, oder? Also, wieso währte die Zuneigung nur so kurz? Eine falsch konfigurierte Datei – und wo ursprünglich das Securitysystem war, klafften unfassbare Löcher auf. Oder das Securitysystem war gar komplett deaktiviert. Und das Schlimmste daran: Es gab keine Meldung, Paul musste folglich diese Tatsache erst einmal herausfinden.

Sein Lösungsvorschlag: __construct() um sicherzustellen, dass der Authorisierungstest ausgeführt wurden. Leider musste Paul feststellen, dass sowohl in Code Igniter als auch in Lithium __construct() aufgerufen wird, bevor der Authorisation Hook läuft. Also doch keine endgültige Lösung für das bestehende Problem. Die Verwendung von __invoke() in Lithium und __remap() in Code Igniter schafft Abhilfe, da eine sekundäre Kontrolle stattfindet und man nicht mehr vollständig von einer Konfigurationsoption oder einer Datei abhängig ist. In einem Update seines Artikels werden zudem Unit Testing oder eine Auth Specific Class zur Lösung der Problematik vorgeschlagen. Paul scheint also seine Zuneigung zu Hooks noch nicht vollständig aufgegeben zu haben. Hooks müssen also nicht zwingend gefährlich sein, oder etwa doch?!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -