Ứng dụng của tôi thực hiện giỏ hàng trong đó người dùng ẩn danh có thể lấp đầy giỏ hàng của họ bằng các sản phẩm. Đăng nhập người dùng chỉ được yêu cầu trước khi thanh toán. Làm thế nào điều này có thể được thực hiện?Cách theo dõi người dùng ẩn danh bằng Flask
Thách thức chính là bình phải theo dõi người dùng (ngay cả khi ẩn danh) và đơn đặt hàng của họ. Cách tiếp cận hiện tại của tôi là tận dụng đối tượng AnonymousUserMixin
được gán cho current_user
. Giả định là current_user
sẽ không thay đổi trong suốt phiên. Tuy nhiên, tôi nhận thấy rằng đối tượng AnonymousUserMixin
mới được gán cho current_user
, ví dụ: khi làm mới mọi trang trình duyệt. Lưu ý rằng điều này không xảy ra nếu người dùng được xác thực.
Bất kỳ đề xuất nào về cách phá vỡ điều này?
Cảm ơn! Có cách nào để bảo vệ ứng dụng của tôi khỏi người dùng độc hại không?Ai đó có thể tấn công bằng cách (i) tạo một giỏ hàng và (ii) đóng phiên (hoặc xóa cookie) trong một vòng lặp. Có cách nào để thực hiện công việc cron (hoặc hàng đợi công việc) giúp tránh sự gia tăng không kiểm soát được trong kích thước cơ sở dữ liệu không? Kiểm tra kích thước của cơ sở dữ liệu khi tạo mỗi giỏ hàng là điều tôi muốn tránh. – LuisO
Không có cái gì đó 100% dễ dàng, nhưng bạn có thể theo dõi địa chỉ IP của người dùng và đảm bảo bạn không cho phép nhiều xe cho cùng một địa chỉ. Hoặc bạn có thể viết ngày tạo cho tất cả các xe, và khi bạn cần tạo một cái mới chạy một truy vấn để tìm ra số lượng xe bạn đã tạo trong N phút cuối cùng. Nếu bạn thấy đó là một số lượng lớn, bạn có thể ngừng tạo giỏ hàng mới. – Miguel