1 Tại sao logic ủy quyền trên thiết kế Bảng quản trị OpenCart như thế này (đã sử dụng)?

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Chúng tôi có rất nhiều phương thức xác thực và ủy quyền để sử dụng (OAuth, 2FA, v.v.) để đảm bảo an toàn cho tài khoản của chúng tôi trên nền tảng thương mại điện tử. Gần đây tôi đã có một cái nhìn cận cảnh về logic đăng nhập của quản trị viên OpenCart 3.0.2.0 và cố gắng tìm hiểu tại sao thiết kế logic ủy quyền như thế này:

  1. Lưu trữ user_token trong bảng phiên trong DB (Tuyệt vời)
  2. Lưu trữ trạng thái đã ghi trong bộ nhớ PHP (Tuyệt vời)
  3. Lưu trữ user_token trong trình duyệt của quản trị viên (Tuyệt vời)
  4. Cung cấp thời lượng cho mã thông báo hết hạn (Tuyệt vời)
  5. Tiếp tục mang user_token trên biến URL GET ở mọi nơi (???)

Chúng tôi có thể kiểm tra xem user_token từ người dùng quản trị viên có hợp lệ không và có trong bảng phiên của chúng tôi trong DB (được kiểm tra khi đăng nhập) hay không, sau đó chúng tôi có thể theo dõi trạng thái đã ghi trong bộ nhớ PHP, chúng tôi cũng có thể kiểm tra xem điều này có phiên đã hết hạn.

Câu hỏi là: Tại sao chúng ta vẫn cần giữ user_token trên url nhận được biến ở mọi nơi?

    
0
  1. OC là nền tảng thương mại điện tử mở và miễn phí. Vì vậy, bạn là phương pháp ủy quyền thiết kế lại miễn phí và thậm chí bán nó trên thị trường opencart. Và tất cả sẽ hạnh phúc.
    2019-05-08 19: 44: 53Z
  2. Nếu có bất kỳ vấn đề bảo mật nào nếu chúng tôi xóa điều đó?
    2019-05-10 00: 28: 43Z
1 Câu trả lời                              1                         

Biến user_token đã được thêm vào sau đó sau khi thảo luận trên internet về lỗ hổng bảo mật này.

Ý tưởng về mã thông báo là ngăn chặn tin tặc gửi cho người dùng một liên kết có mã độc trong url sẽ sử dụng phiên xác thực của Quản trị viên để hack bảng quản trị opencart.

Với mã thông báo tại chỗ, OpenCart kiểm tra nó và đăng xuất quản trị viên trong trường hợp mã thông báo không chính xác.

    
0
2019-05-12 12: 25: 16Z
  1. Cảm ơn bạn đã trả lời! Điều tôi thắc mắc tại sao chúng ta không chỉ lưu trữ mã thông báo trong trình duyệt và máy chủ của người dùng mà còn mang theo biến HTTP GET ở mọi nơi? Điều đó dường như không có ý nghĩa gì với tôi ... bị nhầm lẫn!
    2019-05-13 13: 04: 36Z
  2. Vì tin tặc có thể khai thác điểm yếu trong mã của bảng quản trị bằng cách gửi email hoặc gửi qua skype một liên kết đến Chủ sở hữu của cửa hàng opencart (ví dụ: bạn) gửi mật khẩu của bảng quản trị cho tin tặc này hoặc một cái gì đó tương tự khi nhấp vào. nếu nó không có mã thông báo, quản trị viên sẽ nhấp vào liên kết đó và mã sẽ được kích hoạt. Nhưng vì liên kết yêu cầu mã thông báo, nên ít có khả năng tin tặc biết mã thông báo đó. nó chỉ là một biện pháp phòng ngừa an ninh.
    2019-05-13 14: 51: 25Z
  3. Cảm ơn! Vậy làm thế nào một hacker có thể gửi cho tôi một liên kết đến bảng quản trị của tôi và ghi lại mật khẩu /mã thông báo /thứ gì đó tương tự?
    2019-05-14 01: 45: 35Z
  4. nếu anh ta biết một điểm yếu trong opencart, điều đó có thể được kích hoạt bằng cách gọi một số phương thức nói yousite.com/admin/index.php?route=folder/somecontler/somemethod mà không mã thông báo mà bạn là quản trị viên sẽ kích hoạt phương thức đó nếu được nhấp. Tôi có thể gửi email cho bạn (vì các liên hệ của bạn trên trang web) một liên kết có nội dung "bạn gặp lỗi trên trang này, vui lòng kiểm tra ......" và vượt qua url này, bạn sẽ nhấp vào nó và kích hoạt phương thức tôi mong đợi cho bạn đến. Tất nhiên tại thời điểm này tôi không thể cung cấp cho bạn một bản hack thực sự vì cá nhân tôi không tập trung vào điều này. Nhưng đó là toàn bộ ý tưởng đằng sau mã thông báo. nó sẽ chặn nó.
    2019-05-14 19: 53: 31Z
nguồn đặt đây