dedlfix: Web Routing

Beitrag lesen

Tach!

es gibt 2 Möglichkeiten:
1: Die Route zum Code wird im URL konfiguriert,

Du meinst, aus der Auswertung der URL ergibt sich 1:1 der auszuführende Programmteil?

1a) Betrachte das mal aus der Sicht der Sicherheit, URLs sind manipulierbar. D.h., ein unberechtigter Request greift auf Deinen Code, der sich dann um die Berechtigungen kümmern muss, spätestens hier wird eine Konfiguration benötigt.

Selbst bei Wald- und Wiesen-PHP hat man dieses Problem zu lösen, wenn es Dateien gibt, die nicht direkt (oder nur von bestimmten Nutzern) aufrufbar sein sollen.

Abgesehen von Berechtigungen fachlicher Natur - wenn ungewollt Code aufgerufen wird, liegt das an einer unzureichenden Umsetzung. Bei MVC muss der Router dafür sorgen, dass nur die Controller- und sonst keine anderen Klassen aufgerufen werden können. Die Controller selbst sind so zu gestalten, dass nicht öffentliche Methoden nicht als public deklariert werden. Der Router routet nur zu public-Methoden. Somit ergeben sich ganz ohne Konfiguration keine ungewollten Code-Aufrufe.

1b) Parameter im URL: Sofern Parameter das Routing bestimmen, stehen diese Parameter nicht für die Anwendung zur Verfügung.

Wie begründest du denn diese These? Es kommt auf den Router an, was der aus dem Request für Daten extrahiert und weitergibt.

Die Entwicklung von Anwendungen wird eingeschränkt und es ergeben sich unnötig komplizierte Abhängigkeiten. Im einfachsten Fall darf ein Entwickler keine Parameter festlegen oder verwenden, die für das Routing reserviert sind.

Ich sehe da kein Problem, solange die Routen eindeutig aufgelöst werden können und der Router die benötigten Daten weitergibt.

dedlfix.