MẬT DANH: ZERO — Chương 09: Người gác cổng (Bảo mật & con đường phía trước) | HÀN NGỮ KOOKMIN
Tủ sách
MẬT DANH: ZERO · Chương 09 · Người gác cổng
📕 Đặt sách 1 / 1
Đọc miễn phí · Chương 09

Tuyến phòng thủ cuối // 보안

NGƯỜI GÁCCỔNG
Bảo mật · Đạo đức · Con đường phía trước

Một cái bóng lướt qua tường lửa. Trận chiến thật sự bắt đầu.
보안과 커리어

Chạm nửa phải màn hình để lật trang ›

The Bug

"Một khe hở nhỏ thôi… là ta luồn vào được. Con người luôn quên khóa một cánh cửa."

Vì sao bảo mật quan trọng

Một website giữ thông tin của hàng nghìn người. Nếu kẻ xấu lọt vào, chúng có thể đánh cắp mật khẩu, tiền bạc, dữ liệu riêng tư. Bảo mật (보안) là tập hợp các cách bảo vệ hệ thống khỏi điều đó.

Thuật ngữÝ nghĩa (dễ hiểu)
Authentication
인증
Xác thực: "Bạn có đúng là bạn không?" — kiểm tra qua mật khẩu, vân tay…
Authorization
권한 부여
Phân quyền: "Bạn được phép làm gì?" — admin sửa được, khách chỉ xem được.
Encryption
암호화
Mã hóa: biến dữ liệu thành dạng rối loạn, chỉ người có "chìa khóa" mới đọc được.
HTTPS
에이치티티피에스
Phiên bản web có mã hóa (ổ khóa 🔒 trên thanh địa chỉ). Luôn ưu tiên dùng.
Firewall
방화벽
Tường lửa: bức tường lọc, chặn truy cập đáng ngờ trước khi vào hệ thống.
🗝️ Ví von cho dễ nhớ

Authentication = bảo vệ kiểm tra chứng minh thư ở cửa.

Authorization = thẻ của bạn chỉ mở được vài tầng nhất định.

Encryption = thư viết bằng mật mã, ai nhặt được cũng không đọc nổi.

Ba quy tắc vàng cho người mới

Quy tắcVì sao
Không bao giờ tin dữ liệu người dùng nhậpKẻ xấu có thể nhập mã độc vào ô tìm kiếm. Luôn kiểm tra, làm sạch.
Không lưu mật khẩu dạng chữ thườngPhải mã hóa. Nếu lộ database, mật khẩu vẫn an toàn.
Luôn dùng HTTPSĐể dữ liệu trên đường truyền không bị nghe lén.
🛡️ Tấm khiên đầu tiên

Mẫu số chung của mọi tấn công: hệ thống quá tin vào dữ liệu từ bên ngoài. Vì vậy nguyên tắc số một của mọi lập trình viên là: luôn nghi ngờ, luôn kiểm tra dữ liệu người dùng nhập vào.

Nghe là hiểu — không cần thành chuyên gia

Ba kiểu tấn công người mới nên biết tên

Bạn không cần thành chuyên gia bảo mật, nhưng nên biết tên ba "đòn" phổ biến — để khi nghe đồng nghiệp nhắc, bạn hiểu ngay.

Tên tấn côngLà gì (đơn giản)
SQL InjectionKẻ xấu nhập câu lệnh SQL độc vào ô nhập liệu để lừa database. Phòng bằng cách "làm sạch" dữ liệu nhập.
XSSChèn mã JavaScript độc vào trang để chạy trên máy người khác. Phòng bằng cách kiểm tra mọi thứ người dùng gõ vào.
Phishing
피싱
Lừa người dùng tự khai mật khẩu qua trang/email giả. Phòng bằng cảnh giác và xác thực 2 lớp.
🔗 Mẫu số chung của bảo mật

Hầu hết tấn công đều lợi dụng việc hệ thống quá tin vào dữ liệu từ bên ngoài. Vì vậy nguyên tắc số một của mọi lập trình viên là: luôn nghi ngờ, luôn kiểm tra dữ liệu người dùng nhập vào. Đó là tấm khiên đầu tiên.

Mật khẩu được bảo vệ thế nào? (Hashing)

Hashing — Băm mật khẩu · 해싱

Hệ thống tốt KHÔNG lưu mật khẩu của bạn dưới dạng chữ thường. Thay vào đó, nó "băm" mật khẩu thành một chuỗi ký tự lộn xộn không thể đảo ngược. Khi bạn đăng nhập, hệ thống băm lại mật khẩu vừa nhập rồi so sánh — nên dù database bị lộ, mật khẩu thật vẫn an toàn.

💡 Vì sao điều này quan trọng với bạn?

Khi làm tính năng đăng nhập, đừng bao giờ lưu mật khẩu dạng chữ thường — đó là lỗi bảo mật nghiêm trọng. Luôn dùng thư viện băm mật khẩu có sẵn (như bcrypt). Người dùng tin tưởng giao mật khẩu cho bạn; đừng phụ lòng tin đó.

Tự bảo vệ mình: thói quen an toàn cơ bản

Thói quenVì sao
Mật khẩu khác nhau cho mỗi nơiLộ một chỗ không kéo theo lộ tất cả.
Bật xác thực 2 lớp (2FA)Thêm một lớp khóa, dù lộ mật khẩu vẫn an toàn.
Không bấm link lạTránh phishing, mã độc.
Kiểm tra ổ khóa HTTPSĐảm bảo dữ liệu được mã hóa khi truyền.
✓ Kiểm tra nhanh

1. Authentication và Authorization khác nhau ra sao?
Authentication = xác thực "bạn là ai" (mật khẩu, vân tay). Authorization = phân quyền "bạn được làm gì" (admin sửa, khách chỉ xem).

2. Vì sao không nên lưu mật khẩu dạng chữ thường?
Vì nếu database bị lộ, mọi mật khẩu bị đọc trắng. Phải băm (hash) để dù lộ vẫn an toàn.

3. Nguyên tắc số một khi xử lý dữ liệu người dùng nhập?
Không bao giờ tin tưởng tuyệt đối — luôn kiểm tra và làm sạch trước khi dùng.

Không chỉ là kỹ thuật — mà là trách nhiệm

Quyền riêng tư & đạo đức nghề nghiệp

Là lập trình viên, bạn sẽ chạm tới dữ liệu của người thật — tên, email, đôi khi cả thông tin nhạy cảm. Đây không chỉ là vấn đề kỹ thuật, mà là trách nhiệm đạo đức.

Nguyên tắcÝ nghĩa
Chỉ thu thập điều cần thiếtĐừng đòi dữ liệu không cần đến công việc.
Bảo vệ như của chính mìnhĐối xử với dữ liệu người dùng như dữ liệu riêng tư của bạn.
Minh bạchCho người dùng biết dữ liệu của họ được dùng làm gì.
Không lạm dụng quyền truy cậpCó quyền xem dữ liệu không có nghĩa là được phép tò mò.
⚖ Một bài học từ chính câu chuyện này

Minh có đủ kỹ năng để gây hại, và anh ấy đã chọn sai. Kỹ năng càng lớn, trách nhiệm càng cao. Lập trình viên giỏi không chỉ là người code đẹp — mà là người dùng sức mạnh của mình một cách tử tế và có trách nhiệm. Đó là điều phân biệt một người làm nghề với một người phá hoại.

▣ Nhiệm vụ 09 — cuối cùng: lập bản đồ của riêng bạn

☐ Kiểm tra: website bạn hay dùng có ổ khóa 🔒 HTTPS không?
☐ Viết ra 3 mảng (frontend / backend / data…) nghe hấp dẫn nhất với bạn
☐ Chọn 1 mảng, tìm 1 video nhập môn miễn phí và xem nó
☐ Viết một câu: "Trong 6 tháng tới, mình muốn làm được ___"

⚿ Không có trên Google · ghi chép từ người đi trước

Sai lầm bảo mật mà người mới hay vô tình mắc

✕ Lưu mật khẩu dạng chữ thường (plain text) trong database — sai lầm chết người, phải luôn băm (hash).

✕ Đưa khóa bí mật (API key) thẳng vào code rồi đẩy lên GitHub công khai — hacker quét được trong vài phút.

✕ Tin tưởng dữ liệu người dùng gửi lên mà không kiểm tra — cửa ngõ của tấn công injection.

✕ Nghĩ "dự án nhỏ thì không ai thèm hack" — thực tế bot quét tự động không phân biệt lớn nhỏ.

Vì sao quan trọng: Một lỗ hổng bảo mật không chỉ là bug — nó có thể khiến công ty mất dữ liệu khách hàng và cả uy tín. Đây là lằn ranh giữa "biết code" và "code an toàn".

✦ Trợ thủ AI · dùng đúng cách

Bảo mật là lĩnh vực dễ sai — dùng AI như một người soát lỗi thứ hai:

💬 "Rà đoạn code xử lý đăng nhập này và chỉ ra các lỗ hổng bảo mật tiềm ẩn cùng cách khắc phục."

💬 "Giải thích tấn công SQL injection và XSS cho người mới, kèm cách phòng chống cơ bản."

Claude ChatGPT Cursor Copilot
Còn nội dung — cuộn xuống