API-Änderungen in der nächsten ChurchTools-Version 3.135
-
Mit dem nächsten Update kommen zwei sicherheitsrelevante Anpassungen im API-Bereich, auf die ihr als Admins vorbereitet sein solltet:
1. CSRF-Schutz wird verpflichtend
Der CSRF-Schutz lässt sich aktuell noch über eine Konfiguration in den System-Einstellungen (Datenschutz / Sicherheit > Allgemein) deaktivieren. Das ändert sich: Der CSRF-Schutz ist künftig für alle Installationen fest aktiv und kann weder über die Admin-Oberfläche noch über die Config-API abgeschaltet werden.
Diese Änderung ist nur dann für euch relevant, wenn ihr mit eigenen Skripten oder Programmen die alte AJAX API verwendet. Falls ihr csrf_enabledbei euch bewusst auffalsegesetzt habt, solltet ihr eure angebundenen Systeme rechtzeitig prüfen. Mehr Informationen dazu sind in der Academy zu finden: CSRF-Token2. Login-Tokens erzeugen künftig keine Session mehr bei REST-Aufrufen
Login-Tokens, die bei REST-API-Calls verwendet werden, erstellen in einer zukünftigen Version standardmäßig keine Session mehr. Das neue Verhalten lässt sich mit der Version 3.135.0 in den System-Einstellungen (Integrationen > ChurchTools REST API) aktivieren, um eure angebundenen API-Clients vorab auf Kompatibilität zu testen.
Wer weiterhin eine Session benötigt, kann diese explizit anfordern, indem beim Login der Query-Parameter
with_session=truemitgeschickt wird.
Testet das mit euren API-Integrationen. -
@hbuerger Danke für den Hinweis!
Gibt es schon einen Termin für die Version 3.135?Hab ich das richtig verstanden, dass in der Version 3.135 die Session noch erstellt wird, aber optional ausgeschaltet werden kann (um das Verhalten für eine zukünftigen Version zu testen)?
Bisher arbeiten wir mit Sessions, ist aber eigentlich nicht zwingend notwendig, erpart halt immer das LoginToken mitzugeben. D.h. der von euch bevorzugte Weg ist es, immer das Token mitzugeben statt Sessions zu nutzen? -
Gibt es schon einen Termin für die Version 3.135?
Der Release ist für nächste Woche KW32 geplant.
Hab ich das richtig verstanden, dass in der Version 3.135 die Session noch erstellt wird, aber optional ausgeschaltet werden kann (um das Verhalten für eine zukünftigen Version zu testen)?
Bisher arbeiten wir mit Sessions, ist aber eigentlich nicht zwingend notwendig, erpart halt immer das LoginToken mitzugeben. D.h. der von euch bevorzugte Weg ist es, immer das Token mitzugeben statt Sessions zu nutzen?Genau. In der nächsten Version gibt es die Möglichkeit diese Funktion zu testen/zu aktivieren.
Ja, es soll der bevorzugte Weg werden. Diese Option soll uns dem Ziel näher bringen. Warum haben wir das nicht schon immer so gemacht? Weil ChurchTools im Hintergrund erst optimiert werden musste. Denn aktuell (vor 3.135) kann man zwar auch die API nur mit Login-Token nutzen ohne die Session wieder zu verwenden, aber das hat natürlich viel Last bei uns erzeugt, weil dann bei jeden Request eine neue Session generiert wurde.
Wir wollen damit dem REST-Standard näher kommen, der eigentlich vorsieht zustandslos zu sein.
-
@hbuerger Danke für die Erklärung!