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

Command injection và path traversal: khi input biến thành lệnh shell hoặc thoát khỏi thư mục

Cùng gốc với SQL injection: khi input người dùng được ghép vào một lệnh shell, nó biến thành lệnh chạy trên server; khi được ghép vào đường dẫn file, ../ cho phép đọc file ngoài thư mục cho phép. Bài này tái hiện thật trong Go: shell nối chuỗi chạy lệnh thứ hai sau dấu chấm phẩy, còn exec.Command tách tham số coi input là một đối số vô hại; nối đường dẫn thô đọc được file bí mật ngoài baseDir, còn làm sạch + kiểm thuộc baseDir thì từ chối.