
• Giải thích: Khi bạn gõ một địa chỉ như “www.google.com” vào trình duyệt, hệ thống DNS (Domain Name System) sẽ “dịch” tên miền này thành một địa chỉ IP (ví dụ: 142.250.190.14) để máy tính biết phải kết nối với server nào. Quá trình này giống như tra cứu số điện thoại trong danh bạ.
• Tại sao quan trọng: Nếu DNS chậm, người dùng sẽ phải đợi lâu trước khi trang web bắt đầu tải. Các dịch vụ DNS tối ưu (như Google DNS hoặc Cloudflare 1.1.1.1) giúp giảm độ trễ (latency).
• Ví dụ: Khi bạn vào “facebook.com”, DNS nhanh chóng tìm IP của server Facebook gần bạn nhất.

• Giải thích: Bộ cân bằng tải giống như một “người điều phối giao thông”. Khi có hàng nghìn người dùng cùng truy cập ứng dụng, nó chia đều yêu cầu đến nhiều server để không server nào bị quá tải. Các thuật toán như Round Robin (luân phiên) hay Least Connections (gửi đến server ít bận nhất) được dùng để phân phối.
• Công cụ: HAProxy, NGINX (dùng làm reverse proxy), hoặc AWS Elastic Load Balancer (ELB).
• Ví dụ: Netflix dùng load balancer để đảm bảo hàng triệu người xem phim cùng lúc mà không bị gián đoạn.

• Giải thích: Đây là nơi xử lý các yêu cầu từ người dùng, như khi bạn đăng nhập hoặc tìm kiếm sản phẩm. Nó chạy mã nguồn (application logic) và giao tiếp với backend. Các framework như Node.js (nhẹ, nhanh), Django (Python, dễ dùng), hay Spring Boot (Java, mạnh mẽ) được sử dụng.
• Mục tiêu: Đảm bảo tương tác của người dùng (như thêm sản phẩm vào giỏ hàng) diễn ra mượt mà.
• Ví dụ: Khi bạn tìm kiếm trên Amazon, web server xử lý yêu cầu và trả về kết quả ngay lập tức.

• Giải thích: Backend là “bộ não” của ứng dụng, xử lý các quy tắc kinh doanh (business logic), kiểm tra dữ liệu (validation), và bảo mật. Kiến trúc Microservices chia nhỏ hệ thống thành các dịch vụ độc lập (ví dụ: dịch vụ thanh toán, dịch vụ quản lý người dùng) để dễ mở rộng và sửa lỗi. Kubernetes giúp quản lý các dịch vụ này tự động.
• Ví dụ: Trong ứng dụng đặt đồ ăn, backend tính giá, kiểm tra đơn hàng, và gửi thông báo.

• Giải thích: Dữ liệu được lưu trữ trong database:
◦ Relational DB (MySQL, PostgreSQL): Dữ liệu có cấu trúc, như bảng khách hàng.
◦ NoSQL (MongoDB, Cassandra): Dữ liệu linh hoạt, như bài đăng mạng xã hội.
◦ Caching (Redis, Memcached): Lưu tạm dữ liệu thường dùng (như danh sách sản phẩm hot) để truy cập nhanh hơn, giảm tải cho database.
• Mục tiêu: Truy xuất dữ liệu nhanh, tránh “nghẽn cổ chai”.
• Ví dụ: Instagram dùng Redis để lưu tạm ảnh/video phổ biến, không cần hỏi database mỗi lần.
Dịch vụ bộ nhớ đệm (Caching service) cung cấp khả năng lưu trữ dữ liệu, cho phép lưu trữ và tìm kiếm dữ liệu. Bộ nhớ đệm cho phép bạn tham khảo kết quả trước đó để thực hiện tính toán nhanh hơn nhiều. Bộ nhớ đệm có thể được áp dụng và tận dụng trong các lớp công nghệ khác nhau bao gồm Hệ điều hành, các lớp Mạng bao gồm Mạng phân phối nội dung (CDN) và DNS, ứng dụng web và Cơ sở dữ liệu.
Client-Side — HTTP Cache Headers, Browsers
DNS — DNS Servers
Web — HTTP Cache Headers, CDNs, Reverse Proxies, Trình tăng tốc web, kho dữ liệu Key/Value
App — Kho dữ liệu Key/Value, Bộ nhớ đệm cục bộ
Database — Database Cache, bộ đệm, kho dữ liệu Key/Value Message Brokers and Background Processing (Bộ trung gian tin nhắn và xử lý nền)
• Giải thích: Các tác vụ không cần làm ngay (như gửi email xác nhận) được đưa vào hàng đợi (queue). Message Brokers như RabbitMQ hay Kafka quản lý hàng đợi này, còn Background Workers xử lý từng tác vụ.
• Ví dụ: Khi bạn đặt hàng trên Shopee, hệ thống gửi email xác nhận mà không làm bạn đợi. CI/CD Pipeline (Quy trình tích hợp và triển khai liên tục)
• Giải thích: CI/CD tự động hóa việc cập nhật ứng dụng: từ kiểm tra mã (testing) đến triển khai (deployment). Nếu có lỗi, hệ thống tự động quay lại phiên bản cũ (rollback).
• Công cụ: Jenkins, GitLab CI, ArgoCD.
• Ví dụ: Google cập nhật ứng dụng hàng ngày mà không gây gián đoạn cho người dùng. Observability: Logging, Monitoring and Alerts (Quan sát: Ghi log, giám sát và cảnh báo)
• Giải thích: Đây là cách theo dõi sức khỏe hệ thống:
◦ Monitoring (Prometheus, Datadog): Đo lường hiệu suất (CPU, thời gian phản hồi).
◦ Logging (ELK Stack): Ghi lại mọi sự kiện để phân tích lỗi.
◦ Alerts (PagerDuty): Gửi cảnh báo nếu server quá tải.
• Ví dụ: Nếu website chậm, đội kỹ thuật nhận thông báo qua Grafana ngay lập tức. Content Delivery Network (CDN – Mạng phân phối nội dung)
• Giải thích: CDN lưu trữ nội dung tĩnh (ảnh, video, CSS) ở các server gần người dùng nhất (edge servers). Điều này giảm thời gian tải trang.
• Nhà cung cấp: Cloudflare, Akamai.
• Ví dụ: YouTube dùng CDN để bạn xem video mà không bị buffering. Security Layers (Tầng bảo mật)
• Giải thích: Bảo vệ ứng dụng khỏi tấn công:
◦ WAF: Chặn các yêu cầu độc hại (như SQL Injection).
◦ API Gateways: Quản lý truy cập API.
◦ TLS 1.3: Mã hóa dữ liệu truyền đi.
◦ Quét lỗ hổng: Phát hiện điểm yếu thường xuyên.
• Ví dụ: Ngân hàng trực tuyến dùng WAF để ngăn hacker đánh cắp thông tin.
Tổng kết:
Kiến trúc web app tốt giống như một dàn nhạc: mỗi phần (DNS, load balancer, backend, database, v.v.) phải phối hợp nhịp nhàng để đảm bảo tốc độ (nhanh), khả năng mở rộng (phục vụ nhiều người dùng), và bảo mật (an toàn dữ liệu).
Hacker có thể khai thác các điểm yếu trong kiến trúc ứng dụng web để thực hiện nhiều loại tấn công khác nhau. Dưới đây là một số cách phổ biến mà hacker có thể lợi dụng các thành phần trong kiến trúc web để tấn công:
1. Tấn công vào máy chủ web (Web Server)
-
Lợi dụng lỗ hổng bảo mật: Nếu máy chủ web (Apache, Nginx, IIS, v.v.) có lỗ hổng chưa được vá, hacker có thể khai thác để chiếm quyền điều khiển.
-
Tấn công DDoS (Distributed Denial of Service): Hacker gửi một lượng lớn yêu cầu đến máy chủ web để làm quá tải và khiến nó ngừng hoạt động.
-
Tấn công Directory Traversal: Hacker lợi dụng lỗi cấu hình để truy cập vào các file nhạy cảm trên máy chủ (ví dụ:
/etc/passwd
trên Linux).
???? Ví dụ thực tế: Cuộc tấn công vào Apache Struts (CVE-2017-5638) đã giúp hacker chiếm quyền truy cập vào hệ thống Equifax, rò rỉ dữ liệu của 147 triệu người.
2. Tấn công vào ứng dụng web (Application Server)
-
SQL Injection (SQLi): Hacker chèn mã SQL độc hại vào các form đầu vào để trích xuất hoặc chỉnh sửa dữ liệu trong database.
-
Cross-Site Scripting (XSS): Hacker chèn mã JavaScript độc hại vào trang web để đánh cắp thông tin đăng nhập hoặc chiếm quyền điều khiển trình duyệt của người dùng.
-
Remote Code Execution (RCE): Nếu ứng dụng không kiểm tra dữ liệu đầu vào đúng cách, hacker có thể thực thi mã độc trên máy chủ.
???? Ví dụ thực tế: Một lỗ hổng trong Joomla đã cho phép hacker thực thi mã từ xa và kiểm soát toàn bộ website.
3. Tấn công vào cơ sở dữ liệu (Database)
-
SQL Injection (SQLi): Một trong những cách tấn công phổ biến nhất, hacker có thể truy xuất hoặc thay đổi dữ liệu quan trọng (ví dụ: mật khẩu, thông tin thẻ tín dụng).
-
NoSQL Injection: Tương tự SQLi nhưng áp dụng cho cơ sở dữ liệu NoSQL như MongoDB.
???? Ví dụ thực tế: Một trang web thương mại điện tử bị hacker chèn mã OR '1'='1'
vào ô đăng nhập để truy cập tài khoản admin.
4. Tấn công vào bộ nhớ đệm (Caching Service)
-
Cache Poisoning (Đầu độc bộ nhớ cache): Hacker thay đổi nội dung được lưu trong cache để đánh lừa người dùng hoặc chuyển hướng họ đến trang giả mạo.
-
Session Hijacking: Nếu thông tin đăng nhập được lưu trong cache mà không được mã hóa, hacker có thể đánh cắp phiên đăng nhập của người dùng.
???? Ví dụ thực tế: Một trang web sử dụng Memcached bị hacker khai thác để thực hiện DDoS bằng cách gửi lượng lớn dữ liệu giả mạo.
5. Tấn công vào CDN (Content Delivery Network)
-
Man-in-the-Middle Attack (MITM): Nếu CDN không sử dụng HTTPS, hacker có thể chặn và sửa đổi nội dung truyền tải.
-
Cache Deception Attack: Hacker lừa hệ thống lưu trữ nội dung riêng tư vào bộ nhớ cache công khai để những người khác có thể truy cập.
???? Ví dụ thực tế: Một hacker đã lợi dụng lỗi trong hệ thống CDN của Cloudflare (Cloudbleed) để đánh cắp dữ liệu từ nhiều website lớn.
6. Tấn công vào API và dịch vụ bên ngoài (Web Services)
-
API Key Theft: Nếu API key bị lộ, hacker có thể truy cập vào hệ thống như một người dùng hợp lệ.
-
Rate Limiting Bypass: Nếu API không giới hạn số lượng request, hacker có thể khai thác để brute-force thông tin đăng nhập.
???? Ví dụ thực tế: Vụ rò rỉ API của Facebook năm 2019 làm lộ thông tin của hàng triệu người dùng.
???? Cách phòng chống hacker khai thác kiến trúc web
Bảo mật máy chủ web: Cập nhật phần mềm thường xuyên, sử dụng firewall và chống DDoS.
Bảo vệ ứng dụng web: Kiểm tra đầu vào dữ liệu, sử dụng WAF (Web Application Firewall).
Bảo mật database: Hạn chế quyền truy cập, mã hóa dữ liệu quan trọng.
Bảo vệ bộ nhớ cache & CDN: Sử dụng HTTPS, thiết lập chính sách cache hợp lý.
Bảo vệ API: Giới hạn request, sử dụng xác thực mạnh mẽ (OAuth, JWT).
Hacker luôn tìm cách khai thác lỗ hổng, nên việc xây dựng một kiến trúc web an toàn là vô cùng quan trọng! ????
Tổng hợp từ chuyên gia IT, 27k và AI.