THẢO LUẬN

Avatar
đã bình luận cho bài viết
thg 6 23, 2024 2:55 CH

struct là kiểu giá trị. vì thế trong struct ko dùng string mà dùng mảng char, do string là kiểu tham chiếu không có độ dài cố định, không thể để trong struct. cũng vì thế struct có size cố định. là kiểu giá trị nên struct được clone ra khi truyền vào function. thay đổi struct ở local scope không ảnh hưởng outer scope.

0

bạn xem source ở đây nhé: https://github.com/maitrungduc1410/todo-app

0
thg 6 23, 2024 1:48 CH

Cảm ơn a đã góp ý e mới học nên nhiều cái chưa rõ ạ

0

À bạn có thể cho mình xin dockerfile các image trong bài viêtd ko? Do mình test rewrite-target của ingress, cần điều chỉnh thử root folder của frontend. Nếu được mình cảm ơn nhé

0

sao cứ viết kiểu nửa Tây nửa ta đọc khó hiểu thật ấy

0

cho mình ké link này nha: https://cookkitmart.com/

0
Avatar
đã bình luận cho bài viết
thg 6 23, 2024 2:37 SA

làm thế nào để sử dụng nó vào angular vậy ạ

0

@refacore Vô cùng cảm ơn bác đã chia sẻ kinh nghiệm giúp tôi hiểu kỹ hơn ⭐️

0

Tôi nghĩ là nó có thể giúp một phần trong chống DDoS chứ không phòng được DDoS. Rate limit không ngăn được DDoS xảy ra hay không nên nó không phòng được.

Đối diện với 1 cuộc tấn công DDoS thì thường ngay cả rate limit cũng treo luôn. Trừ phi bạn cô lập botnet ra khỏi hệ thống của mình. Rate limit được cài đặt trên applicaiton server, hoặc load balancer, hoặc router. Cả ba thành phần này đều thuộc hệ thống của bạn và đều chịu sự tấn công của DDoS. Rate limit có thể tăng khả năng chịu tải của hệ thống và có thể giúp hệ thống sống sót. Nhưng một vụ tấn công DDoS nghiêm túc là đánh sập con router của bạn chứ không phải làm treo mấy con server bên trong nên tôi nghĩ rate limit khó có thể coi là một cách để chống DDoS. Chống spam thì được. Spam thì không sử dụng botnet, rate limit có thể block hành động này chứ không phải chỉ hạn chế. Hạn chế thì có thể là hạn chế crawler.

+2

Đối với yêu cầu của bài này thì có 1 đặc điểm:

  • số lượng từ khóa người dùng nhập vào ít hơn nhiều so với dữ liệu được index Dù có hàng triệu người dùng, nhưng số lượng từ khóa được sử dụng giới hạn trong một tập nhỏ. Lưu lượng cho từ khóa cũng giới hạn trong một tập rất nhỏ mang tính xu hướng. Trong trường hợp này, caching sẽ hiệu quả.

Bài viết đang dùng cây nhị phân. Có thể dùng cây k đường. VD với 26 chữ cái latinh thì cây này có 26 nhánh.

Lucene, solr, elasticsearch đã giải quyết vấn đề này thế nào?

0
Avatar
đã bình luận cho bài viết
thg 6 22, 2024 11:15 SA

nó lấy những file cần lấy thui. cho nên nó sẽ rất nhẹ.

0
thg 6 22, 2024 10:10 SA

Mãi không thấy tác giả ra bài viết mới.

0

mình vừa có thêm một bài viết chứa source code demo cơ bản, bạn tham khảo thử nhé

0

Cảm ơn bác đã góp ý. Đọc lại tôi cũng thấy cấn cấn. Xin được nhờ bác gợi ý giúp tôi cách diễn tả chính xác hơn. Có thể gọi là "phòng chống DDoS, hạn chế spam" được không nhỉ

0

rate limit ko phải để chặn ddos, cũng ko chặn đc ddos.

0
thg 6 22, 2024 2:24 SA

Dùng pnpm và prisma thì cần chú ý thêm gì không bạn ?

0

Ý bạn là về công dụng của hàm setCurrentRefreshToken đúng k?!! Mình dùng để lưu lại refresh token vào Database sau khi đăng nhập hoặc đăng ký mục đích tăng bảo mật. Khi user tiến hành dùng refresh token thì sẽ lấy currentRefreshToken ra check bằng hàm getUserIfRefreshTokenMatched và nếu Match thì mình mới trả về Access token mới. Trong trường hợp refresh token bị lộ thì mình chỉ cần vào Database xoá token của user đó thì hacker sẽ k thể lấy refresh token mới.😁

0
Avatar
đã bình luận cho bài viết
thg 6 21, 2024 9:29 CH

Bài viết rất hữu ích. Cám ơn bạn. Xin hỏi lệnh COPY . . Nghĩa là gì vậy bạn?

0

Trong bài toán này: master data là cụm chủ để đã được phân loại từ trước.Ví dụ chủ đề về Sa, Se, Tester, DevOp với các mô tả tương ứng với mỗi role. Sau đấy một bài viết mới được tạo ra sẽ so sánh với mô tả của mỗi role để chọn tag có độ tương đồng cao nhất. Khi đấy em có thể xác định được chủ đề của bài viết mới cho role gì

Còn việc xây dựng master data thì rất quan trọng để thuật toán đưa ra kết quả chính xác. Theo anh biết để xin được master data rất khó, mình phải tự build thôi. Hy vọng là giúp em được một phần

0
thg 6 21, 2024 10:52 SA

Có 2 chi tiết trong comment của bạn:

  1. "khi đi qua router, nó sẽ tự mapping lại đúng địa chỉ ip lúc đầu": mình nghĩ bạn đang đề cập tới cơ chế NAT, nó nằm ngoài phạm vi bài viết của mình, mình có thể giải thích nhanh phía dưới.
  2. "với mỗi card mạng ảo, mình có thể tạo 1 line mạng khác nhau": đúng. Ví dụ thực tế máy bạn có thể cắm 2 dây mạng, hoặc vừa cắm được dây mạng vừa có kết nối wifi, thì từ phía router-wifi sẽ nhìn thấy 2 máy khác nhau, có 2 ip khác nhau nhưng lại trùng tên thiết bị vì bản chất là một máy, thành ra một máy tính nhưng lại có nhiều ip. Về mặt hệ điều hành (cái này mình chưa dám khẳng định, tuy nhiên dựa trên kiến thức của mình) thì hệ điều hành có thể hoàn toàn tạo bao nhiêu card mạng ảo tùy thích, miễn mỗi card mạng ảo có địa chỉ MAC khác nhau, sau đó khi kết nối vào router-wifi, hệ điều hành sẽ present đống MAC đó, từ phía router nó sẽ nhận diện là nhiều thiết bị đang muốn kết nối, router sẽ "phân phát" ip cho mỗi địa chỉ MAC nhưng thực chất về cùng một máy, từ đó máy bạn có thể có nhiều ip và backend có thể bind vào các địa chỉ mạng ảo đó và ... bạn làm gì với nó là việc của bạn 😃))

NAT: đây là cơ chế giải quyết vấn đề về giới hạn số lượng khoảng 2^32 ~ 4 tỉ ipv4. Nói đến NAT thì phải nói tới private (local) ip và public ip. Trong mạng local thì các máy dùng địa chỉ private ip (VD: 10.x.x.x, 192.168.x.x, 172.x.x.x (*)). Khi gói tin từ máy trong mạng local đi qua router ra public internet thì router sẽ lưu mapping địa chỉ ip private + port private <---> ip public của router + port router (đoạn này mình không chắc đúng là router sẽ làm như vậy hay không, nhưng ý tưởng thì sẽ như vậy), từ đây gói tin đi ra ngoài internet với source là ip public của router và port của router. Sau đó khi gói tin đi từ public internet về router thì router sẽ dùng bảng mapping đó để biết trả gói tin đó về cho máy nào trong mạng local. Lúc này không cần biết là card mạng ảo hay card mạng thật, miễn gói tin đi đúng máy cần nhận là được.

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í