Security Overview
Tổng quan
Mục tiêu của chương: Xây dựng hệ thống an toàn từ Network → Authentication → Authorization → Chống tấn công.
Security không phải một tính năng đơn lẻ mà là một chuỗi các lớp bảo vệ — thiếu bất kỳ bước nào, hệ thống đều có thể bị khai thác.
Security Architecture
│
┌───────────────────┼────────────────────┐
▼ ▼ ▼
Network Security Authentication Authorization
│ │ │
▼ ▼ ▼
HTTPS / TLS Identity Verify Access Control
│
▼
Security Vulnerabilities
(SQL Injection, XSS, CSRF ...)
1. Network Security
Lớp bảo vệ đầu tiên — bảo vệ kênh truyền dữ liệu.
Client → Internet → Server
Mọi dữ liệu truyền qua Internet đều có nguy cơ: bị nghe lén, bị chỉnh sửa, bị giả mạo.
Không chỉ Internet — ngay cả trong Intranet, giao tiếp giữa các microservice cũng cần bảo mật. Không nên truyền dữ liệu dạng Plain Text.
Đặc biệt quan trọng với: Financial Transaction, Sensitive Data.
Nội dung sẽ học
Network Security
│
├────────► Public Key Cryptography
│ (Encrypt / Decrypt bằng Public + Private Key)
│
├────────► Digital Certificate
│ (Xác minh Server có đúng là Server thật?)
│
├────────► Digital Signature
│ (Đảm bảo Message không bị sửa)
│
├────────► HTTPS / TLS
│ (Browser → TLS Handshake → Encrypted Communication)
│
└────────► Firewall
(Chặn IP độc hại, Port nguy hiểm, Request bất thường)
2. Authentication
Sau khi kết nối an toàn, hệ thống phải trả lời:
Bạn là ai?
Client → Login → Verify Identity → Authenticated
Nội dung sẽ học
Authentication
│
├────────► Credentials (Username/Password, API Key/Secret)
│
├────────► Password Verification
│
├────────► Credential Storage
│ (Không lưu plain text → phải Hash + Salt)
│
└────────► Service Identity
3. Authorization
Authentication trả lời “Bạn là ai?” — Authorization trả lời:
Bạn được phép làm gì?
Login → Authentication → User Identity → Authorization → Allowed / Denied
Ví dụ:
Admin → Delete User → ✔ Allowed
User → Delete User → ✘ Forbidden
Nội dung sẽ học
Authorization
│
├────────► RBAC (Role-Based Access Control)
│ Admin / Editor / Viewer → quyền khác nhau
│
├────────► OAuth 2.0
│ Login with Google / GitHub (không chia sẻ password)
│
├────────► JWT
│ Token chứa User + Role + Expiration
│
└────────► Token Verification
4. Security Vulnerabilities
Dù đã bảo mật kết nối, xác thực và phân quyền — ứng dụng vẫn có thể bị khai thác qua các lỗ hổng code.
SQL Injection
SELECT * FROM users WHERE username = 'admin' -- ' OR '1'='1
Xử lý input không đúng → kẻ tấn công chèn SQL độc hại vào query.
XSS (Cross-Site Scripting)
Attacker → Inject Script → Victim Browser runs malicious code
CSRF (Cross-Site Request Forgery)
User Login → Visit Malicious Website → Website gửi Request → Bank Server
(Người dùng không hề biết)
Lộ trình toàn bộ chương Security
SECURITY
│
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
Network Security Authentication Authorization
│ │ │
▼ ▼ ▼
Public Key Identity Verify Role-Based Access
Certificates Credentials OAuth2
Digital Signature Password Hashing JWT
HTTPS / TLS Credential Storage Token Validation
Firewall │
▼
Security Vulnerabilities
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
SQL Injection XSS CSRF
Luồng hoàn chỉnh của một request an toàn
Browser
│
HTTPS (TLS)
│
▼
Login → Authentication → JWT
│
▼
Authorization
│
▼
Business API
│
SQL Validation
│
Response
Tổng kết
| Chủ đề | Mục tiêu |
|---|---|
| Network Security | Bảo vệ dữ liệu khi truyền qua mạng: HTTPS, TLS, Public Key, Digital Certificate, Firewall |
| Authentication | Xác minh danh tính người dùng/service, lưu trữ credentials an toàn |
| Authorization | Xác định người dùng được phép làm gì: RBAC, OAuth 2.0, JWT |
| Vulnerabilities | Nhận diện và phòng chống SQL Injection, XSS, CSRF |
- Network Security đảm bảo dữ liệu truyền đi không bị nghe lén hoặc giả mạo.
- Authentication xác minh “Bạn là ai?”
- Authorization quyết định “Bạn được phép làm gì?”
- Hệ thống vẫn cần được thiết kế để chống lại các lỗ hổng phổ biến như SQL Injection, XSS và CSRF.