API Token in URL == "sicher"?

Problem mit Ahlheim v4 - Keine Trips sichtbar
Aktuell kommt es zu Problemen bei Ahlheim v4. Sollte auch bei Dir nur eine Tour bzw. gar keine Tour angezeigt werden, setze bitte diesen Workaround um.
  • Guten Abend zusammen,


    mir ist aufgefallen, das der Token als URL Parameter mitgegeben wird, dies senkt in allen Ecken die Sicherheit, ich finde diese Lösung sehr ungünstig und würde mir das sehr wünschen das man dies ändert.

    Ich kann mir gut vorstellen, das ihr eine URL zum Caching verwendet, aber dies sollte der falsche Ansatz sein, besonders wenn dadurch der Token relativ einfach "gestohlen" werden kann, ich hoffe da tut sich noch was.


    Wünsche euch allen einen schönen Abend.


    Gruß,

    Jan

  • Hallo jan ,


    vielen Dank für Deinen Einwand.


    Wo siehst Du genau die Sicherheitsbedenken? Die API liefert nur einen lesenden Zugriff auf pseudonymisierte Daten (ich kenne kaum jemanden, der unter seinem vollen Klarnamen im BBS aktiv ist).


    Da die API weder Zugriff auf personenbezogene noch schützenswerte Daten gemäß DSGVO erlaubt ist hier kein Zugriffsschutz notwendig. Der API-Key dient lediglich der Identifikation, welcher User grade die Daten von welchem Betrieb anfordert, damit die richtigen Daten auch angezeigt werden können.

    Mit freundlichen Grüßen / Best regards

    Justin F.

    Administrator

    - PeDePe -

  • Hallo Justin,


    ganz einfach gesagt, bei einem URL Aufruf, kann bei jedem Server der zwischengeschaltet ist und spätestens auf den jeweiligen Servern wird sowas gerne im access.log aufgezeichnet, wodurch der Token relativ einfach abgegriffen werden kann.


    Besser wäre sowas im Header mitzugeben, dann wird es auch nicht mitgeloggt (und man kann auch auf dieser Basis eine Identifikation machen) und das ist auch der bessere Weg, wären das schützenswerte Daten dann hätte das so nicht mal umgesetzt werden dürfen!


    Wo ich mir aktuell nicht sicher bin, was passiert wenn ich eine Webrequest via php/JavaScript mache, wird das nicht im Browser sogar angezeigt, damit wäre ein Token dann auch aufgedeckt, ob das jetzt stimmt bin ich mir nicht sicher, bei Angular ist das aufjedenfall der Fall das man diesen Token sehen kann und das ist am Ende JavaScript wenn es kompiliert ist!


    Somit könnte jeder den Token abgreifen was ich nicht in Ordnung finde und somit hätte ein anderer Betrieb die Informationen des anderen Betriebes, sobald er Zugriff auf das Forum hat.


    Auch was ich nicht so dolle finde, somit könnte jeder meinen Fahrstil sehen, sobald der Token "public" wird.


    Gruß,

    Jan

  • Hallo Jan,


    vielen Dank für Deine Erklärungen.


    Der Angriffsvektor, den Du erwähnst, können wir ausschließen. Wenn jemand Zugriff auf das Forum hat, hat dieser noch lange keinen Zugriff auf den zuständigen API-Server (Dienstetrennung gemäß BSI-Grundschutz). Außerdem sind unsere Systeme nach gängigen Sicherheitsstandards (CIS, PCI-DSS etc.) gesichert, von einem administrativen Zugriff von Außen "einfach mal eben" ganz abgesehen - Das ist komplett abgeklemmt.

    Wenn jemand Zugriff auf die Logfiles der Systeme haben will, dann muss dieser jemand schon gewaltigen Aufwand betreiben und mehrere Schutzmaßnahmen untergraben, auf welche ich hier, verständlicher Weise, nicht eingehen werde. Das alles um an Daten von anderen virtuellen Betrieben zu gelangen wäre m.E. ein wenig zu viel Aufwand für den geringen Nutzen.


    Sollte der Token komprimitiert werden (muss ja nicht auf unserer Seite passieren), kann jeder API-User seinen Token erneuern und damit den alten Token widerrufen.

    Mit freundlichen Grüßen / Best regards

    Justin F.

    Administrator

    - PeDePe -

  • [PeDePe] Justin

    Hat das Label von In Bearbeitung auf Erledigt (Lösung) geändert
  • Guten Morgen Justin,


    mal ein Beispiel, weshalb ich das als unsicher empfinde, mir wird der Token bei Aufruf via der Webanwendung unter "Netzwerkanalyse" angezeigt, in meinem Fall der Firefox in der Version 85.0.1, selbes passiert unter Chrome in der Version 88.0.4324.146, wenn ich einen Aufruf via JavaScript starte, der Token wird in der "Netzwerkanalyse" (kann mit der Taste "F12" eingsehen werden) angezeigt, damit kann ich nach jeder Anfrage einen neuen Token anfordern:D.