Odoo 16/09/2026 4 phút

Nhân viên pha chế mà xem được số tài khoản ngân hàng của đồng nghiệp thì hỏng: Odoo chặn chuyện đó thế nào

Hồ sơ nhân sự chứa toàn dữ liệu nhạy cảm — lương, số tài khoản, ngày sinh, giấy tờ. Odoo dùng ba mức quyền (Chỉ đọc / Cán bộ / Quản trị viên) để chỉ đúng người có trách nhiệm mới thấy. Xem cách phân quyền dữ liệu nhân sự qua ảnh thật Odoo 19.

Bảo mật 02/09/2026 9 phút

Tôi viết 8 route, ứng dụng lại trả lời ở 37 điểm — hai phần ba bề mặt tấn công không hề có trong mã nguồn

Mô hình mối đe doạ bắt đầu bằng câu 'ứng dụng của tôi có những cửa nào'. Tôi đếm thật trên một app Flask: 8 route trong đầu, nhưng Flask đăng ký 31 cặp và 37 điểm trả lời từ bên ngoài. Framework tự mọc HEAD, OPTIONS, /static — những cửa bạn chưa bao giờ viết và chưa bao giờ bảo vệ.

Bảo mật 02/09/2026 9 phút

Ba cách chặn SQL injection trông an toàn ngang nhau — cho tới khi tôi đổi từ trường chuỗi sang trường số, và hai cách thủng ngay lập tức

Bốn cách chặn SQL injection, đo trên ứng dụng thật. Lọc dấu nháy và thoát ký tự bằng tay trông chắc chắn ngang tham số hoá — trong đúng một ngữ cảnh. Payload '0 OR 1=1' không có lấy một dấu nháy, và nó phơi cả bảng. Chỉ tham số hoá đứng vững, vì lý do sâu hơn 'chặn ký tự xấu'.

Bảo mật 02/09/2026 9 phút

Tham số hoá chặn sạch SQL injection — trừ đúng một chỗ, và ở đó tôi trích trọn khoá bí mật 18 ký tự chỉ bằng thứ tự sắp xếp

Tham số hoá là cách chặn SQL injection duy nhất thật sự đủ — nhưng chỉ ở vị trí giá trị. Có một chỗ nó không đặt vào được: tên cột trong ORDER BY. Tôi đo ở đó và đọc trọn một khoá bí mật không route nào hiển thị, một bit mỗi request, 144 request cho cả chuỗi.