Thread Cookie-Problem unter Android (12 answers)
Opened by Nexo at 2014-11-26 14:56

Nexo
 2014-12-28 10:06
#178931 #178931
User since
2012-07-07
10 Artikel
BenutzerIn
[default_avatar]
Ich muss nochmal drauf zurückkommen, denn meine angenommene Lösung, dass verschiedene Domainnamen zu dem Problem geführt haben, ist leider doch nicht richtig gewesen. Der Übersichtlichkeit halber möchte ich eure Rückfragen gesammelt in diesem Post beantworten.

Ich denke, ich sollte das Projekt näher beschreiben, damit ihr besser versteht, was ich eigentlich erreichen will. Es geht um ein Zugangskontrollsystem, bei dem online verschickte Zugangstickets schnell darauf getestet werden, ob sie nicht mehrfach vorgelegt werden. Die Tickets enthalten einen QR-Code, der die URL zum Skriptaufruf der Zugangskontrolle enthält, in etwa so: www.meinedomain.de/cgi-bin/ac.cgi?tn=12345. Die Zugangskontrolle an sich funktioniert einwandfrei.

Damit nicht jeder Mensch auf diesem Planeten mit Internetzugang die Zugangskontrolle durchführen kann, wenn er ein Ticket in die Finger bekommt (und das Ticket damit entwertet), müssen im Vorfeld die Smartphones autorisiert werden, die die Zugangskontrolle durchführen dürfen. Dafür gibt es das Skript au.cgi, mit dem der Einsatzleiter die Smartphones der Leute autorisiert, die die Zugangskontrolle durchführen. Per IP-Adresse geht das nicht gut, denn die wird ja dynamisch zugewiesen und ändert sich daher laufend. Meine Alternative: Das Autorisierungsskript au.cgi setzt ein Cookie mit dem Namen und einer PIN und trägt diese Daten auf dem Server in eine Datenbank ein. Das Zugangskontrollskript ac.cgi prüft erst einmal, ob die Cookie-Daten auf dem Smartphone mit einem Eintrag in der Datenbank übereinstimmt. Nur wenn ein Datensatz mit den Cookiedaten übereinstimmt, wird das Smartphone zur Zugangskontrolle zugelassen und prüft jetzt das Ticket.

Mein Problem: Auf meinem eigenen Smartphone (Samsung S4) funktioniert das einwandfrei. Auf meinem Notebook, funktioniert das auch einwandfrei. Auf allen anderen getesteten Smartphones (von Samsung S2 bis iPhone 4) funktioniert es nicht. Das mit au.cgi gesetzte Cookie wird weder von au.cgi selbst noch von ac.cgi erkannt. Manchmal schaffe ich es nach mehreren Anläufen, das Cookie so zu setzen, dass es wenigstens von au.cgi erkannt wird, aber niemals von ac.cgi.

Zu meiner Entwicklungsumgebung: Ich entwickle meine Skripts unter Windows mit Hilfe von ActiveState Komodo 3.5. Ich verwende explizit diese Version, weil alle folgenden Versionen beim Workflow nicht so effektiv sind. Ein Schritt-für-Schritt-Debugging halte ich bei diesem Projekt für nicht so hilfreich, da die Funktionsweise ja unter Echtbedingungen im Internet und mit verschiedenen Smartphones getestet werden muss. Ich behelfe mir mit selbst geschriebenen Breakpoints, die an den gewünschten Stellen die Skriptausführung abbrechen und die gewünschten Variablenwerte ausgeben.

So, das war jetzt ganz schön viel, ich hoffe, ihr habt noch Geduld. Irgendwelche Ideen?

View full thread Cookie-Problem unter Android