[vz-dev] Zugang zum Frontend absichern

pe82 at gmx.de pe82 at gmx.de
Thu Jan 12 15:21:34 CET 2012


Moin,

> >> Äh, ok, aber wozu? Bzw. wie liest du dann mit dem Frontend die
> >> Daten wieder aus?
> > Siehe meine Apache config von vorher in diesem Faden. Das Frontend
> > liegt auf einer Domain. Diese wird auf SSL gezwungen und mit Apache
> > Auth geschützt. Um einen Bypass für den Controller zu bilden hab ich
> > jetzt eine Subdomain, die auf den gleichen Ornder zeigt. Einziger
> > Unterschied ist dass ich nicht auf SSL zwinge und mit mod_rewrite
> > alle Aufrufe verbiete die keien Daten hinzufügen. Ich erlaube also
> > nur /middleware.php/data... und POST.
> 
> Die Config hab ich mir schon angeschaut, aber mir ist nicht klar, wozu
> du den Aufwand treibst.
> 
> Das Frontend sind lediglich statische Dateien, die vom Server
> ausgeliefert weden, da hast du keinen Vorteil, wenn du das irgendwie
> sicherst. Diese Dateien kann sich auch jeder selbst irgendwohin legen
> und damit das selbe machen wie mit dem Frontend auf deinem Server.
> 
> Und wie greifst du denn von deinem Frontend auf die Middleware zu, wenn
> nur POST erlaubt ist? Und wozu soll der getrennte vhost für die
> Controller-Zugriffe gut sein?

Ich versuchs nochmal zusammen zu fassen:

Meine Absicht: Ich will mich am Server authentifizieren, sodass
a) niemand anderes Kanäle anlegen kann und
b) niemand einen Nutzen von meiner UUID hat.
Aus Sicherheitsgründen erfolgt die Verbindung über SSL.

Vorgehensweise:
Der vhost domain.com:80 leitet weiter auf domain.com:443
Der vhost domain.com:443 kümmert sich auch um die Authentifizierung

Seitenkanal bzw. Subdomain für den Controller:
Der vhost vz.domain.com:80 leitet nicht auf ssl weiter, verweist aber auch auf das volkszaehler.org-Verzeichnis.
Damit dieser vhost auch nur genutzt werden kann um Daten hinzuzufügen benutze ich hier folgende Rewrites:
Wenn Pfad != /middleware.php/data Zugriff verweigern
Wenn Aufruf != POST Zugriff verweigern

Mein Problem:
den Parameter operation kann ich auch bei Anfragen über POST mitschicken.
D.h. wenn ich nur POST erlaube kann man über den Umweg operation=get trotzdem die Daten auslesen.

Eine mögliche Lösung:
operation=whatever nur bei GET erlauben, da der Parameter (soweit ichs überblicken kann) nur als Unterstützung beim Testen gedacht ist sodass man über den Browser alle Befehle der API ausnutzen kann.

Meine Frage:
Ist operation=whatever wirklich nur zum Abbilden der gesamten API im Browser gedacht (dann würde GET reichen) oder gibt es noch zusätzliche Use-Cases die ich nicht kenne?

Ich denke es hat etwas verwirrt dass ich den dritten vhost auf Port 443 nicht deutlich genug erläutert hab.

Gruß,
Pepe


More information about the volkszaehler-dev mailing list