Token (JWT) Làm sao thu hồi một token bị HACK và một vài câu hỏi về mức độ an toàn khi sử dụng token

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

Комментарии • 57

  • @huyennguyenvan8094
    @huyennguyenvan8094 2 года назад +1

    hay quá anh ạ , em sẽ giới thiệu nhiều cho bạn bè đồng nghiệp của em về các video của anh

  • @quanalehoang2055
    @quanalehoang2055 2 года назад +1

    hay lắm ạ

  • @ongtheanh1852
    @ongtheanh1852 2 года назад +1

    xem video của anh thu được nhiều kiến thức bổ ích quá

  • @ai-oo9ls
    @ai-oo9ls 2 года назад +1

    Đúng video em đang cần, cảm ơn anh

  • @TamThanh-tb1vg
    @TamThanh-tb1vg 2 года назад +1

    Rất dễ hiểu ạ. Em cảm ơn rất nhiều

  • @vothanhtai6357
    @vothanhtai6357 2 года назад +1

    Thanks anh, video bổ ích lắm ạ.

  • @minhcraft5888
    @minhcraft5888 2 года назад +2

    Anh ơi a làm thêm về Redis đi a. Rồi cassandra các thứ nữa a ơiii 😘

  • @quocthinh4882
    @quocthinh4882 Год назад +1

    Hi anh, anh có thể ra mắt series làm sao để có thể dựng một cấu trúc dự án (cách đặt files trong thư mục, cách config project, ...) có thể scale như big company được không vậy ạ. Em cảm ơn

  • @ThaiNguyen-jw6lp
    @ThaiNguyen-jw6lp 2 года назад +1

    Like cho Chú

  • @hqsqtt6948
    @hqsqtt6948 6 месяцев назад +1

    Trường hợp login ko cần pass mà thông qua google api thì sao anh. Em chỉ định nếu nhận được api hợp lệ từ google thì verified và cấp quyền

  • @hoangtran-yw7mw
    @hoangtran-yw7mw 2 года назад +2

    Em có thắc mắc là refresh token và access token nên lưu vào đâu trên client. Rõ ràng phải lưu vào đâu đó mà JS có thể đọc được để còn set nó vào trường Authorization của request header. Nhưng nếu lưu vào localStorage hoặc cookies thì dễ bị lấy cắp bởi kĩ thuật XSS.

    • @anonystick
      @anonystick  2 года назад

      Cookie em. Xem lại video cookie trước nha em

  • @nguyenduc3012
    @nguyenduc3012 11 месяцев назад

    anh ơi làm sao để token mình sinh ra là duy nhất

  • @Nguyenqui
    @Nguyenqui Год назад +1

    Hi anh. Nếu như trường hợp accessToken đó dùng đăng nhập cho web và cả mobile thì làm sao mình có thể nhân dạng được là accessToken đó có bị hack hay không? Ví dụ như trên web accessToken expired mình lưu accessToken vào database rồi cấp lại accessToken và refeshToken mới cho web. Thì khi vào bằng mobile thì accessToken của mobile cũng bị expired và cũng nằm trong database nhưng trường hợp này đâu phải bị hack.

  • @leucthang5821
    @leucthang5821 2 года назад +4

    Không cần lưu token trong db nhé bạn. Không ai lại lưu token trong db hoặc cache cả. Vì đó là quy tắc lquan tới security, và nó cũng làm phình db ra
    Solution là lưu token timestamp link tới user thôi nhé

    • @tangdinhvu
      @tangdinhvu 2 года назад

      chính xác lưu timestamp và xử lý timestap ở backend để hủy token, db lưu refesh token thì hợp lý hơn

    • @HaiNguyen-wh6gc
      @HaiNguyen-wh6gc 2 года назад

      Nhưng như vậy thì khi muốn huỷ bỏ 1 token còn hạn sử dụng thì làm thế nào vậy bạn? Mình thấy 2 phương pháp như trên video rất hợp lý

    • @tangdinhvu
      @tangdinhvu 2 года назад +1

      @@HaiNguyen-wh6gc phương pháp nào cũng dc cả, tùy theo yêu cầu của dự án thôi

    • @sevenup139
      @sevenup139 3 дня назад

      lưu timestamp link tới user là sao bạn có thể giải thích cụ thể hơn ko?

  • @huyennguyenvan8094
    @huyennguyenvan8094 Год назад

    Anh cho em hỏi chút chút là
    RefeshToken bản chất cũng tạo ra một token mới (Đây là hành động 1) ,
    Mà hành động bên FE gọi đăng nhập lại lần nữa thì nó cũng sinh ra token mới
    (Nhưng thao tác này được chạy ngầm, người dùng vẫn không bị logout ra ). (Đây là hành động 2)
    Vậy sao không làm hành động 2 luôn đi mà lại phải sinh ra RefeshToken chi mệt vậy ???????

    • @anonystick
      @anonystick  Год назад

      Ồ, em không thể bắt user cứ một phải login lại một lần đúng không?

  • @hoangan_nguyen
    @hoangan_nguyen Год назад +1

    cho e hỏi a có khóa học hay series backend nodejs nào tính phí kh ạ

    • @anonystick
      @anonystick  Год назад

      Video mới nhất có link á em

  • @nhienan5193
    @nhienan5193 2 года назад +1

    anh ơi. anh cho em hỏi sao em dùng $dateDiff trong mongosee thì n lại báo Invalid $project :: caused by :: Unknown expression $dateDiff vậy ạ. mongo e đang v5 ạ.
    Em cảm ơn anh nhiều

  • @hoangvupham6281
    @hoangvupham6281 2 года назад +1

    Hi anh. Em hiện tại đang dùng oath2 để kêt nối lấy với phần mềm khác. giờ em muốn auto tạo refresh token khi hêt hạn để đẩy lên header(authorization) để gọi api từ phần mềm đó. thì k bt nên dùng cách nào tốt nhất và nên lưu ở đâu ở dưới sserver ạ? em đang tính dùng axios interceptor mà k bt lưu token ở đâu và lấy ra ntn. mong anh tư vấn giúp. Em cảm ơn

    • @anonystick
      @anonystick  2 года назад

      Có 2 video trình bày rồi đó em. Em vào kênh xem, dùng axios interceptor luôn đấy.

    • @hoangvupham6281
      @hoangvupham6281 2 года назад

      @@anonystick Dạ em có thấy, trong đó anh sử dụng jwt thì ko bt có dùng cách đó với oath đc k ạ?

  • @phunobi888
    @phunobi888 2 года назад +1

    Hi mọi ng , mình là newbie, mọi ng cho mình hỏi nên lưu acccess token ở đâu thì hợp lý ạ, cookie, session hay localStorage ạ

    • @anonystick
      @anonystick  2 года назад +1

      Mọi người đồng thanh trả lời là Cookie và một số options đi kèm ở video trước nữa.

  • @hatran8656
    @hatran8656 2 года назад +1

    Anh ơi cho em hỏi mình lưu token sau khi user đó đã đăng xuất hoặc bị thu hồi vào blacklisted làm gì vậy ạ?. Nếu lưu vào thì đó mục đích là gì khi em thấy những token này k còn tác dụng, nếu check token mình chỉ cẩn check ở whitelisted là được rồi em cảm ơn

    • @anonystick
      @anonystick  2 года назад +3

      Video sau sẽ rõ. Bật mí là đã đăng xuất rồi, mà còn có ai đó vẫn còn sử dụng thì đó là một sự kỳ lạ...

  • @quanphamanh957
    @quanphamanh957 Год назад

    Hi anh, em nghe giọng anh cảm giác anh cũng làm hơn 10 năm trong nghề rồi, em tự hỏi 5 năm nữa Javascript còn được ưa chuộc không ạ

    • @anonystick
      @anonystick  Год назад +1

      Quá ưa đi chứ. Em nghĩ xem react, vuejs, nestjs... Tương lai hết đó em

    • @quanphamanh957
      @quanphamanh957 Год назад +1

      @@anonystick về front end thì quả là thế nhưng mà em theo hướng backend, em đang làm dự án ERP nên hỏi anh thếm nhưu thế

    • @anonystick
      @anonystick  Год назад

      @@quanphamanh957 BE càng đúng hơn nữa. Server nodejs, db là mongodb... Giờ hướng về Js nhiều nha em...

    • @anonystick
      @anonystick  Год назад

      Mà em chỉ cần nội lực giỏi là được. Có nội lực thì học 12 võ công các môn phái thì nhẹ nhàng. Nhân chứng sống đây kakak

    • @quanphamanh957
      @quanphamanh957 Год назад +1

      @@anonystick hihi, em từ cơ khí sang tự học backend, may biết được kênh của anh chia sẻ nhìu bài toán thực tế em học thêm khá nhìu hướng giải quyết.

  • @loctan9148
    @loctan9148 2 года назад +1

    Khi refreshToken được gọi để tạo accessToken thì lúc đó phải tạo lại 1 refreshToken mới sao a?

    • @huynhhoangthanh2726
      @huynhhoangthanh2726 2 года назад

      Không bạn ơi, refresh token thường sẽ lưu trong database. Khi call api lấy access token sẽ kiểm tra RT còn hạn ko. Nếu còn thì cấp AT mới, ko còn thì phải login lại để lấy RT mới

    • @phamduong3540
      @phamduong3540 2 года назад

      @@huynhhoangthanh2726 bạn có thể cho mình hỏi chẳng hạn trong khoảng thời gian RT vẫn còn thời hạn mà RT bị đánh cắp thì bên đánh cắp được vẫn có thể thoải mái sử dụng RT để cấp AT mới liên tục đúng không bạn. Và nếu đúng thì có cách nào để ngăn chặn việc này không nhờ. Cảm ơn bạn

    • @hieudoan1992
      @hieudoan1992 2 года назад +1

      @@phamduong3540 như chủ clip đã nói refresh token được lưu ở db và có cơ chế thu hồi, nên dù có bị đánh cắp thì khi bị thu hồi thì hacker cũng không còn thời hạn truy cập. Hơn nữa khi lưu refresh token ở db thì sẽ được hash một chiều với secret key lưu ở phía server nên trường hợp lấy được refresh token rất khó xảy ra, t
      rừ khi hacker truy cập vào máy tính của user để lấy

    • @huynhhoangthanh2726
      @huynhhoangthanh2726 2 года назад

      @@phamduong3540 thường Token bị đánh cấp do phía client á. Vì vậy nên tránh lưu AT RT trên local storage á.

    • @anonystick
      @anonystick  2 года назад +1

      Vì độ an toàn cho nên khi dùng RT lấy AT vì AT hết hạn thì return lại một cặp luôn. Ngoài trường hợp trên thì change pass, change email....

  • @buiuclong2731
    @buiuclong2731 2 года назад +3

    Em chào anh
    Anh cho em hỏi là trong trường hợp mình lưu token ở cookie và user có xu hướng sử dụng các tool share cookie để sử dụng chung 1 tài khoản
    Mình sẽ có những phương pháp nào để ngăn chặn việc này ko ạ
    Và việc thống kê các phiên đăng nhập trên các thiết bị mình sẽ làm như nào ạ
    Em cảm ơn ạ
    Chúc anh nhiều sức khoẻ ❤

    • @trungtrung6286
      @trungtrung6286 Год назад

      nhét thêm ip, agent của client vào jwt tới lúc verify jwt thì check lại 2 thằng này

    • @AmalmaditMadit
      @AmalmaditMadit 9 месяцев назад

      @@trungtrung6286 IP của việt nam toàn IP động, nhét vào thế lúc ip nó thay đổi là login lại à