Verwendung des API Token durch den Proxy besser absichern
Aktuell hängt der Proxy an jede Anfrage den api Tokeen an, falls dieser im Manifest mit angegeben ist. Das führt dazu, dass über die URL des Proxy eigentlich geschützte API-Calls auch von Angreifern verwendet werden können.
Drei Möglichkeiten die mir zur Lösung einfallen:
1 Kontrolle über session_passthrough
Ist einer der definierten session_passthrough parameter in der session nicht vorhanden, wird der API-Token nicht verwendet. DieAnfrage wird dann ohne API-Token ausgeführt.
2 kontrolle übe vereinbarten session parameter
Wenn vereinbart ist, dass der Benutzername in der Session immer unter 'user' gespeichert ist, kann man das mitsenden des Tokens davon abhängig machen ob session['user'] gesetzt ist. Alternativ kann mann auch einen Flag in der session setzen session['use_api_token'] an den sich der Proxy hält. Eine im grudne vierte Möglichkeit wäre hier über eine proxy_acl zu bestimmen bei welchen proxy im bezug auf die aktuelle session der api_token mit gesendet wird.
3 kontrolle ob eine session existiert
Ganz platt könnte man auch einfach kontrollieren ob es in der session überhaupt einträge gibt oder überhaupt eine session existiert. Ist eines von beiden nicht der Fall macht es nie Sinn einen API-Token mit zu senden. Da hier dann nichts verifiziert ist.
Ich schlage vor zunächst 3 um zu setzen. Wir könen später darauf auf setzen wenn wir die vorgaben weiter verfeinern wollen.