ValeriLiebert
Neues Mitglied
Guten Tag,
wir haben eine eigenentwickelte Software an JTL angebunden (JTL Fulfillment -> Merchant API). Unsere Software soll mit unterschiedlichen JTL-Mandanten arbeiten, dafür haben wir auch mehrere angelegt und nutzen OAuth, um die beiden Lösungen miteinander zu verbinden. Leider ist es ohne weiteres möglich, eine Connection zu dem falschen JTL-Mandanten herzustellen. Ein Beispiel:
JTL-Mandant 1: client-id-1, secret-1 und redirect-URL-1; Login-Daten: mandant1@mail.de
JTL-Mandant 2: client-id-1, secret-1 und redirect-URL-2; Login-Daten: mandant2@mail.de
Versucht ein User dem JTL-Mandanten 1 den Zugriff auf JTL zu erteilen, werden die client-id1, secret-1 und redirect-URL-1 per API übermittelt. Dann wird der User auf die JTL-Loginseite weitergeleitet, wo er durchaus die Zugangsdaten vom JTL-Mandant 2 angeben kann (also mandant2@mail.de mit dem entsprechenden Passwort); das wird nicht geprüft und damit bekommt man eine Connection zu dem Mandanten 2, was natürlich alle weiteren Prozesse durcheinander bringt.
Erstens klingt das für mich nach einer möglichen Sicherheitslücke, und zweitens wie kann sichergestellt werden, dass der JTL-Mandant, zum dem die client-id etc. aus dem API-Call passen, auch für das Einloggen im JTL benutzt wurde?
Hat jemand da eine schlaue Idee?
wir haben eine eigenentwickelte Software an JTL angebunden (JTL Fulfillment -> Merchant API). Unsere Software soll mit unterschiedlichen JTL-Mandanten arbeiten, dafür haben wir auch mehrere angelegt und nutzen OAuth, um die beiden Lösungen miteinander zu verbinden. Leider ist es ohne weiteres möglich, eine Connection zu dem falschen JTL-Mandanten herzustellen. Ein Beispiel:
JTL-Mandant 1: client-id-1, secret-1 und redirect-URL-1; Login-Daten: mandant1@mail.de
JTL-Mandant 2: client-id-1, secret-1 und redirect-URL-2; Login-Daten: mandant2@mail.de
Versucht ein User dem JTL-Mandanten 1 den Zugriff auf JTL zu erteilen, werden die client-id1, secret-1 und redirect-URL-1 per API übermittelt. Dann wird der User auf die JTL-Loginseite weitergeleitet, wo er durchaus die Zugangsdaten vom JTL-Mandant 2 angeben kann (also mandant2@mail.de mit dem entsprechenden Passwort); das wird nicht geprüft und damit bekommt man eine Connection zu dem Mandanten 2, was natürlich alle weiteren Prozesse durcheinander bringt.
Erstens klingt das für mich nach einer möglichen Sicherheitslücke, und zweitens wie kann sichergestellt werden, dass der JTL-Mandant, zum dem die client-id etc. aus dem API-Call passen, auch für das Einloggen im JTL benutzt wurde?
Hat jemand da eine schlaue Idee?