Zum Inhalt springen

Bug User-Agent bei iOS und Android unterschiedlich


Empfohlene Beiträge

Szenario:
Was haben wir uns gewundert, warum alle iPhones wunderbar einem Spiel beitreten konnten, aber alle Android-Telefone nicht. In meiner spezifischen CAPI-Implementierung frage ich den User-Agent ab, der als Header jedem Request mitgegeben wird, um damit die Weiterverarbeitung zu Routen. Konkret sendet iOS den User-Agent "DRIFT" (Auszug), Android aber "UnityPlayer" (Auszug).

Lösung:
Android for "DRIFT"

Walkaround:
Nach beiden User-Agents abfragen 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Prüfung auf den User-Agent würde ich persönlich lassen weil dieser dir gar nix bringt. Es bringt dir kein Stück Sicherheit. Es müsste von seiten Sturmkind mal eine Art Signierung der Nachrichten kommen Stichwort "Public/Private Key Verfahren". Da bräuchte man den User-Agent Header auch nicht. Er ist zudem sehr einfach zu manipulieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habs mit aufgenommen, nen richtiger Bug ist es nicht, da dass ja nie Spezifiziert war, aber ich denke es wäre sauberer, wenn der User-Agent einheitlich ist.

Bitte melde dich an um den Link zu sehen.

 ich sehe das nicht als "Sicherheitsfeature" sondern als convenience-funktion. Signatur der JSON requests habe ich aber als Feature-Request separat davon aufgenommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der User Agent Header sollte eigentlich gar nicht benutzt werden bzw. wie in diesen Fall missbraucht werden. Der gibt solche Geschichten wie OS des Anfragen, Webbrowser und Version des Webbrowser mit. Wenn es interessiert hier ist es sehr gut beschrieben.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bitte melde dich an um den Link zu sehen.

 Es gibt Anwendungsfälle wo die Abfrage des User-Agent sinn macht, z.B. wenn man Endpunkte überlädt. Man könnte z.B. /ping überladen und dort, wenn nicht "DRIFT" als user agent angegeben ist, die Informationen auf einer schönen Webseite darstellen statt als .json objekt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bitte melde dich an um den Link zu sehen.

Das ist ne ganz a Bad Pratice so baut etwas nicht auf. In diesen Fall würdet ihren einen Header benutzen der für den Anwendungsfall nicht konzipiert wurde.
Ich bin da vllt a bissl zu störisch geb ich zu weil ich beruflich auch als Softwareentwickler tätig bin. Aber dafür solche Anwendungsfälle gibt es andere Header.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bitte melde dich an um den Link zu sehen.

also ich persönlich nutze den User Agent auch nicht, ich sehe das eher als saubere Implementierung an wenn dieser bei beiden Apps zumindest ähnlich klingt. Wie "DRIFT-iOS" und "DRIFT-Android". Was die Server Programmierer damit machen, sollte für die Überlegung dazu egal sein. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

×
×
  • Neu erstellen...

Wichtige Information

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung