THẢO LUẬN

bài viết hay quá 🥉 thx tác giả

0

@kevinram bạn exec thẳng vào container rồi chạy “npm install” và “npm run prod”

Rồi kiểm tra lại file đó ở folder public nhé

0

@maitrungduc1410 mình đã install các dependencies còn thiếu rồi thì mới đến bước này. Trong trường hợp thiếu file thì fix thế nào nhỉ?

0
thg 6 17, 2023 10:23 SA

Mình nghĩ nên dùng từ 'dành' thay cho từ 'giành'

+1
thg 6 17, 2023 9:55 SA

e dùng v-if cho các nút bấm và menu mà e muốn ẩn nhé

0

@kevinram lỗi mix manifest does not exist kia là do chưa chạy npm run dev hoặc npm run prod bạn ạ (sau khi chạy npm install

Nếu bạn đã chạy cả rồi, thì exec vào container check folder public xem có file mix-manifest.json ko nhé

0

Trong mã hoá đối xứng thì mình chỉ dùng 1 key vừa để sign và verify, thường thì mình thấy dev hay lưu key ở file biến môi trường hoặc lưu trong DB, nếu việc bảo vệ key đó không tốt, hacker có thể đọc đc file môi trường hoặc đọc được dữ liệu trong db thông qua sql injection chẳng hạn. Hacker sẽ lấy key đó và tạo ra các fake JWT để dễ dàng vượt qua lớp xác thực của ta

0

"Nhược điểm: Không an toàn vì khi hacker ăn cắp được key đó, sẽ dễ dàng tạo ra các fake JWT, có thể truy cập tấn công ứng dụng."

Mình có thấy ý trên, mình chưa hiểu ý tạo ra các fake JWT, bạn có giải thích thêm giúp mình đc không?

Như mình hiểu là hacker chôm dc secretKey, dùng key đó fake JWT, nhưng chưa hiểu hacker chôm được kiểu nào nhỉ?

Thanks.

0

Em code backend đã lâu nhưng giờ mới bắt đầu dùng kafka trong dự án có thắc mắc mong được anh giải đáp.

Việc 1 partition chịu tải được 10mb/s vậy app có size < 10mb chỉ cần 1 partition.

Tuy nhiên nếu size của app tuy nhỏ, nhưng thời gian xử lí mất khá lâu thì cần nhiều partition để xử lí đồng thời, ví dụ update db mất 50ms = >1s = 20 request.

Consumer -> kafka topic -> handler -> commit offset => lặp lại

Lý do em tắt auto commit vì nếu ta commit ngay khi nhận message thì dù kafka bảo đảm consumer nhận được message nhưng không điều gì đảm bảo consumer sau khi nhận message sẽ handle, ví dụ nhận mess, commit offset, handle… mất điện…

1 consumer chỉ có thể handle tối đa 1 mess tại 1 thời điểm, nó cũng chính là bảo đảm thứ tự trên 1 partition.

Từ các ý trên (nếu sai sửa lại giúp em ạ), câu hỏi của em như sau: => Nếu e muốn web app e xử lí được đồng thời nhiều request, e phải tăng số lượng parttion lên nhiều (hàng chục/trăm) chứ không phải dừng ở số 3-4 đúng không, hay em hiểu sai ở đâu nhỉ.

Cảm ơn anh vì đã dành thời gian!

0
  1. Như mình có nói private key chỉ dùng để sign token và biến mất mãi mãi, còn public key được lưu vào db để verify token đó trên backend nên vẫn đảm bảo được tính toàn vẹn nhé.
  2. Không nhất thiết phải gửi public key lên client vì client hoàn toàn có thể decode để lấy thông tin từ token mà ko cần dùng tới public key, cái này bạn tự gg nhé.
  3. Bạn có đề cập đến vấn để nhiều server và vấn đề private key, thì mình xin nhấn mạnh rằng private key chỉ đúng vai trò sign token và không có vài trò gì khác. Đối với trường hợp nhiều server như này, thì rất đơn giản mình chỉ cần chọc vào db để lấy ra public key cho việc verify token, nếu muốn gia tăng tốc độ bạn hoàn toàn có thể sử dụng redis cho việc cache các public key.

Rất cảm ơn bạn đã góp ý ạ, mình cũng đồng tình với bạn rằng không giải pháp nào là cũng hoàn hảo 100% 😄

0
thg 6 17, 2023 12:59 SA

Cảm ơn bạn vì đã đón nhận nồng nhiệt 😀

0
thg 6 16, 2023 8:21 CH

bác giải thích khá ổn nhưng mà mình góp ý là đừng đưa mấy vd ngoài lề vào không làm dể hiểu hơn đâu mà khiến người xem trở nên rối hơn , vì chúng ta đều là dân technical nên nói chuyện thuần technical thôi

0
thg 6 16, 2023 6:12 CH

@thanhhuong3004 đến nay mình mới log in account để viết bài tiếp mới thấy comment của bạn. Mình cảm ơn bạn nhé !

0

Bài viết hay ghê, mở mang tầm nhìn ❤️ love chủ thớt

0
thg 6 16, 2023 8:42 SA

chào a, e đã theo dõi nhiều bài viết của a và đã học được rất nhiều từ đó. cảm ơn a rất nhiều. a cho e hỏi nếu làm như bài trên nếu tài khoản ko có quyền thì click vào sẽ thông báo lỗi. nhưng e muốn các nút bấm và menu sẽ ẩn đi nếu không có quyền thì sao ạ

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí