Hỏi về: Cách định danh người dùng nền tảng web bằng javascript không sử dụng OTP hoặc đăng nhập/đăng ký

ngohoang2601

New Member
03/11/2018
0
1 bài viết
Hỏi về: Cách định danh người dùng nền tảng web bằng javascript không sử dụng OTP hoặc đăng nhập/đăng ký
Hiện tại, hệ thống mình đang làm 1 trang bán hàng và các sản phẩm là unique. Mỗi khi người dùng đặt mua thì sẽ lock sản phẩm đó trong vòng 60 phút để user tiến hành thanh toán. Vấn đề mình đang gặp phải là sẽ bị những người phá vào lock hết sản phẩm dẫn tới người sau không có sản phẩm để mua.
Mình đang tìm cách định danh người dùng nhưng do nền tảng web là ngôn ngữ bậc cao nên không có cách nào để lấy được MAC address của người dùng để xử lí việc hệ thống bị phá hoại => không có sản phẩm để bán./
Có bác nào đã xử lý qua trường hợp này chưa ạ ?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Hi bạn
Thay vì sử dụng MAC address thì bạn vẫn có thể thể lấy được địa chỉ IP public của người dùng thông qua nền tảng web. Về bản chất thì cách làm này chỉ hạn chế được những kẻ xấu không có hiểu biết về công nghệ thôi, chứ nếu kẻ xấu đó biết sử dụng VPN thì gần như không có cách nào ngăn chặn mà không làm ảnh hưởng tới trải nghiệm người dùng cả.
 
1 Comment
N
Em cũng đã nghĩ tới các biện pháp đó nhưng vẫn đang cố tìm một thứ gì đó tốt hơn :D
 
Chào bác. Về giới hạn quyền của browser nên thông tin thu thập vật lý của target sẽ bị hạn chế. Tuy nhiên nhu cầu định danh khách hàng là có nó có thể phục vụ cho việc chặn bot, hay phân tích hành vi khách hàng từ đó nâng cao trải nghiệm cho người dùng. Về trường hợp của bác mình có chút lời khuyên sau:
  • Thứ nhất để định danh client bác có thể dùng các giải pháp fingerprint miễn phí lẫn thương mại các giải pháp này sẽ định danh khách hàng dựa trên nhiều yếu tố IP, browser ... tất nhiên nó sẽ mang tính tương đối. Bác có thể tham khảo https://github.com/fingerprintjs/fingerprintjs
  • Thứ 2: Mình đọc case của bác thì user cần tiến hành đăng nhập rồi mới đặt mua thì bác có thể giới hạn theo định danh người dùng. Check các user có hành vi bất thường hold nhiều sản phẩm cùng lúc và chặn theo users.
  • Thứ 3: Bác xem lại luồng lock sản phẩm đã hợp lý chưa. Bác tính hold sản phẩm từ thời điểm nào? Hold từ lúc thêm sản phẩm vào giỏ hàng hay lúc bắt đầu tạo đơn thanh toán? Xem có tối ưu được không?
  • Thứ 4: Bác nên apply thêm phần ratelimit. Ví dụ đối với hệ thống bác 1 users bình thường truy cập vào hệ thống thường trong vòng 10 phút tạo 5 đơn hàng chẳng hạn. Thì tất nhiên 100 request trong vòng 10 phút là quá cao và bất bình thường thì bác có thể từ chối luôn vì bác biết rõ đây không phải hành vi users bình thường. tất nhiên ngưỡng ratelimit sẽ dựa vào tình hình thực tế của hệ thống.
 
2 Comments
N
User không cần thiết phải đăng nhập để mua nhưng khi lock sản phẩm thì cần 1 thứ để định danh chính xác người dùng. Trong trường hợp người dùng xài các máy cấu hình y chang nhau thì fingerprint cũng ra giống như thế nên em mới cần tìm xem có cách nào lấy được mac address không.
 
Marcus1337
Thứ nhất Mac address bác sẽ không lấy được. Thứ 2 giả sử bác có lấy được Mac address thì dùng nó để định danh người dùng cũng sẽ không hợp lý. Mac address có thể thay đổi được do đó có thể fake sang bất kỳ địa chỉ nào. Nên mọi phương pháp định danh client hiện tại nó đều mang tính tương đối thôi bác nhé
 
Chào bác, em có đề xuất cho bác thế này: Người dùng không nên được quyền giữ sản phẩm khi chưa thanh toán. Chờ tận 60 phút mà không thanh toán thì ảnh hưởng đến người dùng thật sự có nhu cầu. Bác nên giải quyết theo kiểu hàng đợi, nghĩa là ai đặt mua trước sẽ được đưa vào danh sách thanh toán, người nào thanh toán xong trước thì được nhận hàng. Nếu như vậy thì bác giải quyết được cả vấn đề về định danh nữa.
 
Comment
Thẻ
javascript react
Bên trên