Lập trình 22/09/2026 6 phút

TLS/HTTPS: InsecureSkipVerify biến HTTPS thành vô dụng — mã hoá mà không xác thực là vô nghĩa

HTTPS làm hai việc: mã hoá dữ liệu VÀ xác thực bạn đang nói chuyện với đúng server. Tắt phần xác thực (InsecureSkipVerify) giữ lại mã hoá nhưng vứt bỏ sự an toàn. Bài này tái hiện thật trong Go: client mặc định từ chối cert tự ký với lỗi x509, nhưng InsecureSkipVerify=true chấp nhận bất kỳ cert nào — mở cửa cho kẻ người-đứng-giữa. Cách đúng khi cần tin cert riêng là thêm vào RootCAs, không bao giờ tắt verify.

Lập trình 22/09/2026 9 phút

Broken Access Control: lỗ hổng #1 OWASP và IDOR — vì sao server biết bạn là ai nhưng vẫn để bạn đọc dữ liệu người khác

Đăng nhập xong không có nghĩa được làm mọi thứ. Broken Access Control đứng #1 OWASP Top 10 vì rất dễ dính: server xác thực đúng bạn là ai, nhưng quên kiểm bạn có quyền với ĐỐI TƯỢNG này không. Bài này tái hiện IDOR trong lab cô lập: Alice chỉ đổi một số id trong URL là đọc được đơn hàng nhạy cảm của Bob (HTTP 200); thêm một dòng kiểm sở hữu phía server, cùng request đó trả về 403. Phòng thủ, không tấn công.

Lập trình 22/09/2026 8 phút

Tổng kết sê-ri Bảo mật web: ánh xạ 11 lỗ hổng vào OWASP Top 10, checklist production và cây quyết định review

Mười một bài, mười một lỗ hổng tái hiện trong lab — giờ ghép lại thành một bản đồ dùng được. Bài tổng kết này ánh xạ từng lỗ hổng vào OWASP Top 10:2021 để bạn thấy bức tranh rủi ro, kèm một checklist chạy trước khi lên production và một cây quyết định dán cạnh màn hình khi review code: input vào SQL thì prepared statement, ra HTML thì escape, là id đối tượng thì kiểm sở hữu. Phòng thủ, không tấn công.

Spring 29/07/2026 8 phút

Tám lỗ hổng Spring hay gặp nhất, mỗi cái một lệnh để tự tìm — bắt đầu từ cái không test nào bắt được

Đi một vòng quanh toà nhà của mình rà từng cánh cửa: chỗ thủng không phải cửa chính (xác thực) mà là cánh cửa khoá rồi vẫn mở cho nhầm người (IDOR), lối kỹ thuật bị quên (Actuator), cái chuông gọi bất kỳ số nào (SSRF). Danh sách kiểm kèm cách tìm.