Meine App implementiert einen Einkaufswagen, in dem anonyme Benutzer ihren Einkaufswagen mit Produkten füllen können. Benutzeranmeldung ist nur vor Bezahlung erforderlich. Wie kann dies umgesetzt werden?So verfolgen Sie anonyme Benutzer mit Flask
Die größte Herausforderung besteht darin, dass flask den Benutzer (auch wenn anonym) und ihre Bestellungen verfolgen muss. Mein derzeitiger Ansatz besteht darin, das Objekt AnonymousUserMixin
zu nutzen, das current_user
zugewiesen ist. Die Annahme ist, dass sich current_user
während der gesamten Sitzung nicht ändert. Ich bemerkte jedoch, dass ein neues Objekt AnonymousUserMixin
current_user
zugewiesen wird, zum Beispiel bei jeder Aktualisierung der Browserseite. Beachten Sie, dass dies nicht geschieht, wenn ein Benutzer authentifiziert wird.
Haben Sie Vorschläge, wie Sie das umgehen können?
Danke! Gibt es eine Möglichkeit, meine App vor bösartigen Benutzern zu schützen?Jemand könnte angreifen, indem er (i) einen Einkaufswagen erstellt und (ii) die Sitzung in einer Schleife schließt (oder den Cookie löscht). Gibt es eine Möglichkeit, den Cron-Job (oder die Task-Warteschlange) dazu zu bringen, einen unkontrollierten Anstieg der Datenbankgröße zu vermeiden? Das Überprüfen der Größe der Datenbank bei jeder Warenkorb-Erstellung möchte ich vermeiden. – LuisO
Es gibt nichts, das 100% idiotensicher ist, aber Sie können die IP-Adresse des Benutzers verfolgen und sicherstellen, dass Sie nicht mehrere Wagen für denselben Benutzer zulassen. Oder Sie könnten das Erstellungsdatum auf alle Wagen schreiben, und wenn Sie einen neuen erstellen müssen, führen Sie eine Abfrage durch, um herauszufinden, wie viele Wagen Sie in den letzten N Minuten erstellt haben. Wenn Sie feststellen, dass es sich um eine große Anzahl handelt, können Sie keine neuen Wagen mehr erstellen. – Miguel