Sự bùng nổ của các công cụ AI đang định hình lại cách nhiều người tiếp cận lập trình. Với một vài dòng lệnh mồi, bất kỳ ai cũng có thể nhận về hàng trăm dòng code ngay lập tức. Tuy nhiên, sức mạnh này đang tạo ra một “ảo giác” nguy hiểm: những người không nắm vững chuyên môn bắt đầu tin rằng họ có thể xây dựng các hệ thống phần mềm phức tạp mà không cần hiểu bản chất bên dưới.
Niềm tin mù quáng vào AI, cộng với sự hổng kiến thức về kiến trúc hệ thống, đã cho ra đời những dự án trông có vẻ nguy hiểm nhưng bên trong lại là một thảm họa. Một câu chuyện thực tế “dở khóc dở cười” từ một người bạn của tôi chính là minh chứng rõ ràng nhất cho hội chứng này.
“Hệ điều hành”.html
Gần đây, bạn tôi có “vinh dự” tiếp cận một dự án cá nhân do một tay ngang (cùng tên) công bố. Anh chàng này vô cùng tự hào giới thiệu đây là một hệ thống chuyên nghiệp, thậm chí có cả lớp 2FA. Nhìn lướt qua giao diện, mọi thứ trông khá trơn tru và bài bản.
Nhưng sự thật phũ phàng đã bị bóc trần chỉ trong chớp mắt khi bạn tôi ngó thử vào bên trong. Không cần dùng đến kỹ năng hack phức tạp hay công cụ quét lỗ hổng nào, “hacker” này chỉ dùng duy nhất công cụ… F12.
Toàn bộ “hệ thống” đồ sộ đó thực chất chỉ là một tệp All-in-One HTML. Việc đăng nhập hoàn toàn bị phó mặc cho browser. Bạn tôi đã thản nhiên dạo bước vào hệ thống thành công chỉ bằng một thao tác đơn giản: xóa luôn đoạn code HTML chứa form đăng nhập. Khóa cửa kiểu này chẳng khác nào vẽ cái ổ khóa lên giấy rồi dán tạm vào cánh cửa đang mở toang.
Hệ điều hành .html này còn đặc biệt là không có kernel và… OS này phải dựa vào một app của OS khác để chạy đó là electron. Thực chất chỉ có 1 file exe và giao diện MacOS, nhưng gọi app bên trong “OS” thì nó lại chạy ngoài Windows.
Nghệ Thuật “Giấu chìa khóa treo trên cửa”
Khám phá sâu hơn vào mã nguồn, dự án tiếp tục cho thấy những lỗ hổng ngô nghê nhất trong ngành Vibe Coding:
- Hardcode Tài Khoản: Tên đăng nhập và mật khẩu được mã hóa cứng (hardcode) ngay trong thẻ
<script>. Người viết như thể đang giấu chìa khóa dưới tấm thảm trước nhà, nhưng lại cắm thêm một tấm biển báo to đùng: “Chìa khóa ở dưới thảm nhé!”. - 2FA “Lạy Ông Tôi Ở Bụi Này”: Đỉnh cao của sự ngây ngô nằm ở thuật toán 2FA. Tác giả cấu hình sao cho sau khi nhập đúng user/pass cứng, màn hình sẽ chuyển sang ô nhập ID Telegram để gửi mã OTP. Hài hước, OTP lại nằm một đống trong lời gọi API. Bằng cách mở tab Network, bạn tôi dễ dàng copy được toàn bộ đoạn lời gọi API đó. Chỉ cần quăng đoạn text đó vào ChatGPT hay Gemini, AI sẽ ngoan ngoãn chỉ ra chính xác mã OTP cần nhập là gì.
- Dấu Ấn “Copy-Paste” Hiện Nguyên Hình: Mã nguồn tràn ngập những dòng comment chú thích cho từng dòng code một. Đây là “sít nây chờ” không thể nhầm lẫn của sản phẩm do AI sinh ra. Lập trình viên chuyên nghiệp, ít nhất là bán chuyên, KHÔNG BAO GIỜ viết comment giải thích những thứ hiển nhiên kiểu như dòng này khởi tạo biến gì. Họ chỉ comment để giải thích tại sao đoạn logic đó lại tồn tại.
- let a=1 //khởi tạo a bằng 1

Sự Thật Về Lập Trình Cùng AI
Những lỗ hổng sơ đẳng trên giải thích lý do vì sao dân lập trình chuyên nghiệp không bao giờ giao phó 100% tư duy hệ thống cho AI. Theo một khảo sát gần đây từ Stack Overflow, khoảng 46% lập trình viên không đặt niềm tin vào các công cụ AI. Hơn một nửa giới coder chuyên nghiệp vẫn luôn giữ thái độ hoài nghi và cảnh giác. Họ xem AI như một người thợ phụ gõ phím nhanh, một bách khoa toàn thư để tra cứu cú pháp, chứ không ai dại dột đem sinh mệnh bảo mật của hệ thống đặt vào tay nó.
AI có thể xuất ra một đoạn code chạy được, giao diện hiển thị đẹp mắt, nhưng nó không tự động thiết kế luồng bảo mật phía server nếu người dùng không có tư duy hệ thống. Câu chuyện hài trên là một lời nhắc nhở nhẹ đến các bé không hiểu gì mà vẫn muốn an toàn, không biết gì mà cũng làm “OS”: Code chạy được chưa chắc đã là code dùng được. Nếu dùng AI để lập trình mà hoàn toàn mù mờ về phần chìm của tảng băng, thứ bạn tạo ra chỉ là một ngôi nhà bằng giấy chực chờ sụp đổ trước cú click chuột nhẹ nhất.
Ảnh: Gemini
Chữ: TÔI – TRẦN ĐÌNH LONG