Chặn replay attacks API đối với HACKERS nhiệm vụ không riêng Backend| Nonce vs timestamp

2 cách ngăn chặn replay attacks API đối với HACKERS của kỹ sư cấp cao API | Nonce vs timestamp.
👉 Link khóa học backend Nodejs: / @anonystick
Timeline:
00:00 Giới thiệu về 3 câu hỏi tuần này về chủ để bảo mật Rest Api.
03:30 Giới thiệu về video "E2E là gì? Và cách tạo key và lưu KEY secret" như thế nào?
06:50 Mô hình api hiện nay.
12:00 Cách triển khai 2 công thức như thế nào?
🚩 Subscribe ➜ / tipsjavascript
#restapi #backend #nodejs
✅ Follow Me:
Blog: anonystick.com
Facebook: / tipjs
KZread: / tipsjavascript

Пікірлер: 52

  • @binhtruongan5872
    @binhtruongan5872 Жыл бұрын

    Cảm ơn anh, là kênh em mới theo dõi nhưng không bỏ sót video nào

  • @nguyenquangong9863
    @nguyenquangong9863 Жыл бұрын

    rất cảm ơn anh ạ !

  • @nguyencaotai412
    @nguyencaotai412 Жыл бұрын

    Cảm ơn bác e hiểu vấn đề r

  • @self_motivation_official
    @self_motivation_official Жыл бұрын

    a mãi đỉnh

  • @nhat9862
    @nhat9862 Жыл бұрын

    Anh đưa ra giải pháp cho vấn đề thiết thực, học như vầy nhớ lâu hơn nhiều á anh. Cám ơn anh!

  • @huongsenongthap478

    @huongsenongthap478

    Жыл бұрын

    học ở trường làm gì có ai chỉ như vầy :))

  • @quanphamanh957
    @quanphamanh9574 ай бұрын

    Em cảm ơn a

  • @ongtheanh1852
    @ongtheanh1852 Жыл бұрын

    tuyệt vời quá anh ạ, hôm qua cô mới bắt về nhà tìm hiểu cách bảo mật lẫn nhau giữa các tài khoản xong hôm nay có video của anh luôn.

  • @anonystick

    @anonystick

    Жыл бұрын

    Chuẩn bị thực hành nha!

  • @toanta4838
    @toanta4838 Жыл бұрын

    Làm về OS, single threat của js khác vs các ngôn ngữ khác multi-thread đi anh , rồi thì thread và process, even loop để hiểu sau về js hơn đc k anh

  • @nhatthanhtran1718
    @nhatthanhtran1718 Жыл бұрын

    em có dọc vs api của binance họ cũng bảo mật kiểu này nhưng ko nắm rõ lắm cảm ơn anh xem clip em mới hiểu hết đc

  • @anonystick

    @anonystick

    Жыл бұрын

    Em nói chuẩn. Anh cũng làm đầu tiên 2013 với paymentwall.

  • @hungnguyenvtol6024
    @hungnguyenvtol6024 Жыл бұрын

    99/00 was sotNice tutorialng called Vision DSP or DST or sotNice tutorialng and didn't quite work the way soft soft does, but tNice tutorials video helped so

  • @ucNguyen-uy3jl
    @ucNguyen-uy3jl Жыл бұрын

    Sao mình không dùng UTC +0 luôn mà phải get time từ server vậy a. Cám ơn anh vì những video này nhiều nhé.

  • @Y-Nhu-Van-Su
    @Y-Nhu-Van-Su5 ай бұрын

    E đang làm 1 dự án thực tế và đang áp dụng cách này , client em viết bằng vuejs và em đang băn khoăn 1 điều là thuật toán tạo chữ kí có thể bị đọc , anh có thể chia sẻ 1 thư viện dùng để Obfuscate đoạn js này để làm khó khăn cho hacker trong việc dò ra cách tạo chữ kí dưới client của mình được không anh ? Cám ơn anh

  • @reoteuray9823
    @reoteuray9823 Жыл бұрын

    em ko hiểu phần nói về chữ kí của anh là đang giải quyết vấn đề replay attack hay middle man attack vì phần mã hóa dữ liệu đã có ssl lo >> cái chữ kí anh nói em thấy hơi thừa em thấy cốt lõi của cái chữ kí chính là thuật toán mã hóa/giải mã , => nếu hacker đang ở middle thì ko thể đọc đc dữ liệu >> chả cần chữ kí như anh cho phức tạp, vì đã có ssl lo => nếu hacker lúc này đóng vai trò là enduser, lúc này họ nắm giữ thuật toán mã hóa thì họ làm gì chả đc ,cái này tùy trình độ, nhưng về lý thuyết thì họ hoàn toàn có thể tự tạo request và mã hóa bằng cái chữ kí kia >> cái giải pháp anh đưa ra có lẽ để làm khó khăn thôi chứ ko phải là giải quyết vấn đề, chống spam api từ phía end user p/s : em thấy phần câu hỏi đưa ra có hơi hướng là muốn ngăn người dùng tự tạo request để viết bot/auto , nên em nghĩ ko có giải pháp nào cho cái việc ngăn enduser viết bot/auto cả, chỉ có làm họ khó khăn trong việc tìm hiểu thôi

  • @anonystick

    @anonystick

    Жыл бұрын

    Cảm ơn bạn đã đặt câu hỏi. Video tói đây sẽ giải đáp cho bạn hai câu hỏi chính "mã hóa và sign khác nhau thế nào?" và "Các trao đổi keySecret không qua internet..."

  • @anhle3897
    @anhle3897 Жыл бұрын

    "Ông cha ta, mấy cái ông dev lúc trước" :v :v :v

  • @kysomaio7207
    @kysomaio7207 Жыл бұрын

    anh ơii ! cho em hỏi là mình có thể sài redis làm database tạm đc không , như là những vấn đề update data thường xuyên nhưng vẫn sử dụng redis, và chạy cron cuối ngày update ngược lại vào data chính

  • @anonystick

    @anonystick

    Жыл бұрын

    Chuẩn em. Không cần góp ý thêm

  • @binh4625
    @binh4625 Жыл бұрын

    dùng nonce có chú ý đến bộ nhớ ko anh? vì mỗi ngày cả triệu request, lưu hoài lưu mãi cho chết bộ nhớ à anh, đó là server web, chứ server app hoặc game, gửi request dạng tcp , thì cả trăm triệu packet được gửi đi nên em nghĩ phải có kĩ thuật khác tốt hơn nonce chứ nhỉ vd: em làm 1 con game , có packet là cộng tiền, nó sài replay để hack cộng tiền, đặc thù của game là nó sài kết nối bền vững tcp , nên có thể trong 1phut lượng request giữa client và server là rất lớn (vd: 1000) , chưa kể có thể có cả nghìn chục nghìn account cùng hoạt động trên server , thì tốn rất nhiều bộ nhớ, cứ cho là anh sẽ xóa bộ nhớ để chứa key đi sau mỗi 1 phut, thì việc xử lý xóa đồng thời nhiều thread cùng xóa như vậy cũng tốn nhiều tài nguyên và thời gian

  • @gogodiaryfromvuong
    @gogodiaryfromvuong Жыл бұрын

    có dạy kèm không ạ?

  • @anonystick

    @anonystick

    Жыл бұрын

    Vượng ơi, chưa có idea này nha Vương. Tks bạn!

  • @rolle701
    @rolle701 Жыл бұрын

    liệu Json webtoken có thay thế dc cách này không ạ e cảm ơn thầy

  • @anonystick

    @anonystick

    Жыл бұрын

    Được em! Em thêm jti, dạng jwt id. Em tham khảo keyword đó

  • @nhan5370
    @nhan5370 Жыл бұрын

    Trường hợp client là react thì có thể bị dò ra private key đúng hk nhỉ

  • @anonystick

    @anonystick

    Жыл бұрын

    Vậy đặt câu hỏi dò ra token thì sao??? Bạn đã khắc phục thế nào?

  • @nhan5370

    @nhan5370

    Жыл бұрын

    @@anonystick ơ kìa, gì mà token nữa. Đang thắc mắc mà chứ có ý bắt lỗi gì đâu

  • @nhan5370

    @nhan5370

    Жыл бұрын

    @@anonystick xem video theo hiểu là cái private key đó phải lưu ở client và server mà client là react chẳng hạn làm SPA, thì tải toàn bộ source về trình duyệt bao gôm luôn private key

  • @anonystick

    @anonystick

    Жыл бұрын

    @nhan Vâng! Tải toàn bộ source là lộ hết. Nguy hiểm quá. Do đồng chí không xem hết video cũng như các video trước. Nếu hệ thống của bạn đơn giản thì có thể sử dụng "hmac hashed signature". Ngược lại, nếu là findtech thì phức tạp hơn và đặt những câu hỏi sau? Đồng chí nhận key khi nào? Ai được phép phép cấp key? Và key được cấp chung cho toàn bộ user hay sao? Và mỗi ip đều sinh ra một key?? Xem lại đoạn cuối video. Thêm nữa cho bạn là . Key được nhúng trong chứng chỉ đã được ký điện tử bởi tổ chức phát hành chứng chỉ được công nhận để đảm bảo rằng đó là khóa hợp pháp được tạo bởi người nhận dự kiến ​​(CA). Nếu chưa biết CA vui lòng sử dụng Mr. Google. Và điều quan trọng tất cả mọi thứ đều không an toàn 100%. Tks

  • @ThaiNguyen-gg8xj
    @ThaiNguyen-gg8xj Жыл бұрын

    Anh có nghĩ là tương lai golang sẽ chiếm ưu thế Backend của nodejs không anh?

  • @ThaiNguyen-gg8xj

    @ThaiNguyen-gg8xj

    Жыл бұрын

    @@anonystick backend vẫn xoay quanh hai cái này mà anh. Chứ golang thì sao so được với Javascipt phía frontend anh ơi.

  • @anonystick

    @anonystick

    Жыл бұрын

    Anh hiểu sai câu hỏi của em. Sr em. Golang thật sự đáng quan tâm hơn đó em.

  • @TakanNick
    @TakanNick Жыл бұрын

    Có phải vừa có time vừa có nounce là thừa ko anh, vì 1 khi bắt session-id chỉ cho sử dụng 1 lần thì time đâu còn ý nghĩa nữa ạ

  • @hoangloc1108

    @hoangloc1108

    Жыл бұрын

    giống như OTP có hạn 5p, ví dụ trong 5p đó người ta ko xài, thì sau 5p cũng ko xài đc

  • @TakanNick

    @TakanNick

    Жыл бұрын

    @@hoangloc1108 thks bạn

  • @thanhvan1200
    @thanhvan1200 Жыл бұрын

    Hi anh. Em đang tìm hiểu về cơ chế tách hệ thống lớn thành các hệ thông con. A có thể cho em xin vài đường quyền giải quyết vụ này không? Cụ thể Input e cần giải quyết như sau: Input: Người dùng khi vào 1 subdomain thì nó sẽ kiểm tra tài khoản đó có quyền được truy xuất đến database nào. Nếu họ có dùng account đó vào subdomain khác thì sẽ báo ko có quyền truy cập. Hoặc củng có trường hợp 1 tài khoản vào được đến 2-3 subdomain. Em bản chất em đang muốn clone database riêng biệt nhưng chức năng vẫn trên 1 source. Mong anh giúp đỡ, em cảm ơn anh.

  • @anonystick

    @anonystick

    Жыл бұрын

    Sao giống anh hồi xưa giữ vậy trời :)

  • @thanhvan1200

    @thanhvan1200

    Жыл бұрын

    @@anonystick ước gì được anh chỉ giáo.. có mà sướng run người 🤣. Em củng tìm hiểu theo hướng proxy config và authen DB mà vẫn chưa rõ cách hoạt động chính xác là như nào

  • @hautran7559

    @hautran7559

    Жыл бұрын

    @@anonystick sao em thấy bạn trên hỏi giống làm microservices vậy a. Anh làm 1 video microservices cho expressjs cho 1 dự án mini được ko a

  • @anonystick

    @anonystick

    Жыл бұрын

    @@hautran7559 Đang làm đó em. Chò hén.

  • @hautran7559

    @hautran7559

    Жыл бұрын

    @@anonystick ak với 1 cái nữa a ơii. Mấy keywords nào tiếng anh, anh có thể ghi thêm scripts cho nó không anh. Em nghe cách đọc được nhưng mà spell ra như thế nào để search em vẫn chưa spell ra được từ đó

  • @HungHoang-dm4qw
    @HungHoang-dm4qw Жыл бұрын

    Cho em hỏi https sinh ra làm gì ạ :D

  • @anonystick

    @anonystick

    Жыл бұрын

    Https không phải là tình huống reply attack và spoofing. Đọc kỹ bro.

  • @emmajennnings5920
    @emmajennnings5920 Жыл бұрын

    em newbie ko hiểu gì

  • @anonystick

    @anonystick

    Жыл бұрын

    Từ từ rồi hiểu nha em. Chỗ này hơi đòi hỏi chút..

  • @cheng6630
    @cheng6630 Жыл бұрын

    Em thắc mâc là cái key mình để ở client, nó đọc được source nên lộ key ra, nó hiểu đc cơ chế tạo ra cái chữ ký mình nên nó cũng sẽ giả đc chữ ký. Em cũng đang viết api cho bên game unity, cũng đang tìm hiểu cách làm sao chặn request ko đến từ game mà đến từ postman hoặc tool gì đó. Hiện tại e cũng làm hơi giống anh một tí là để logic tạo key ở phía client (Ingmame) nên cũng nghĩ là bọ nó sẽ decode game ra đọc đc cách tạo ra cái key này. Còn logic sinh key thì em dùng jwt, mỗi khi gọi api thì ở dưới client sinh ra key dựa vào secret key và có tgian hết hạn 30bs, trên backemd sẽ validate dựa vào secret key. Nói chung secret key đang bỏ cả backend và client nên em nghĩ nếu bọn mó.muốn hack thì sẽ tìm đc cái key này. Anh có góp ý gì cho em không ạ? Cảm ơn anh với những video bổ ích ạ.

  • @TungNguyen-wy7dz

    @TungNguyen-wy7dz

    Жыл бұрын

    vậy là bann chưa xem video trước. Không thể nào tạo key ở client. mỗi phiên có một key mà server cấp cho...

  • @cheng6630

    @cheng6630

    Жыл бұрын

    @@TungNguyen-wy7dz vậy có sợ hacker nó cũng gọi api lấy key không ạ? em chỉ làm ở mức bình thường chứ cũng ko phưc tạp như kiểu zalo hay video anh nói về cơ chế e2e ấy ạ.

  • @nguyenhuynhle1423

    @nguyenhuynhle1423

    Жыл бұрын

    Hello bạn, theo kiến thức của mình với bên Android thì hdh sẽ có các api để quản lý key riêng và nó thuộc về hdh an toàn hay không là do thiết bị cũng như các lỗ hổng của android. Bên web cũng tương tự như vậy, key do browser quản lý vì vậy nếu bạn làm đúng theo các case study của web hoặc android thì dù hacker có khai thác được source code cũng không thể nào biết được key của các người dùng khác. Thứ hai về chữ kí số thì thường người ta sẽ dùng mã hóa bất đối xứng ( asymmetric cryptography) để mã. Bạn có thể tìm hiểu thêm về mã hóa bđ xứng và chữ ký số. Còn về việc hacker gọi được api lấy key hay không thì nếu api của bạn là public thì hacker cũng sẽ như những người dùng bình thường sẽ có được key nhưng key đó chỉ dùng để giao tiếp giữ client của hacker và server. Và nếu các thiết kế api áp dụng các kiểu bảo mật như trên video thì khả năng hacker khai thác được server của bạn là rất thấp.

  • @anonystick

    @anonystick

    Жыл бұрын

    Chuẩn bị có video giair thích vể cách trao đổi key bảo mật nhất hén.

  • @cheng6630

    @cheng6630

    Жыл бұрын

    @@anonystick Dạ, tuyệt vời quá anh, hóng video của anh ạ?

Келесі