Một nghiên cứu phát hiện rằng mã được tạo bởi AI có khả năng cao gấp 1,7 lần gặp phải các vấn đề lớn và dễ bị lỗ hổng bảo mật gấp 2,74 lần so với mã do con người viết. Nếu bạn đã xây dựng bất kỳ thứ gì với Cursor, Claude Code, hoặc GitHub Copilot, dự án của bạn có khả năng có ít nhất một trong năm lỗ hổng bảo mật phổ biến nhất. Dưới đây là những lỗ hổng đó và cách tìm chúng.
- 45% mã được tạo bởi AI chứa ít nhất một lỗ hổng bảo mật
- 1,7 lần cao hơn khả năng gặp phải các vấn đề lớn so với mã do con người viết
- 2,74 lần dễ bị lỗ hổng bảo mật hơn
- Phổ biến nhất: Khóa API được mã hóa cứng, thiếu xác thực đầu vào, không có bảo mật cấp hàng
- Thời gian kiểm toán: 2-3 giờ cho một dự án vibe-coded điển hình
- Xác minh lần cuối: Tháng 4 năm 2026
Tại Sao Mã AI Dễ Bị Tấn Công
Các công cụ lập trình AI tối ưu hóa cho "nó có hoạt động không?" chứ không phải "nó có an toàn không?" Khi bạn yêu cầu Cursor "thêm xác thực người dùng," nó tạo ra mã xác thực người dùng. Nó không tự động thêm giới hạn tốc độ, vệ sinh đầu vào, bảo vệ CSRF, hoặc quản lý phiên an toàn — vì bạn không yêu cầu những thứ đó.
AI viết chính xác những gì bạn mô tả. Bảo mật yêu cầu mô tả những thứ bạn không tự nhiên suy nghĩ — các trường hợp biên, đầu vào độc hại, các mẫu truy cập trái phép. Nếu nó không có trong lời nhắc của bạn, nó sẽ không có trong mã của bạn.
5 Lỗ Hổng Phổ Biến Nhất
1. Khóa API Được Mã Hóa Cứng trong Mã Frontend. AI thường đặt khóa API trực tiếp trong các thành phần JavaScript hoặc React phía máy khách. Bất kỳ ai cũng có thể mở DevTools trình duyệt và nhìn thấy chúng. Sửa: Di chuyển tất cả khóa sang biến môi trường (tệp .env) và truy cập chúng chỉ từ phía máy chủ. Thời gian: 15 phút.
2. Không Có Bảo Mật Cấp Hàng trên Cơ Sở Dữ Liệu. Nếu bạn đang sử dụng Supabase (phổ biến trong vibe coding), mã được tạo bởi AI thường cấp quyền truy cập cho mọi người dùng được xác thực vào dữ liệu của mọi người dùng khác. Sửa: Bật Row Level Security và thêm chính sách cho từng người dùng. Thời gian: 30 phút.
3. Không Có Xác Thực Đầu Vào Phía Máy Chủ. Biểu mẫu chấp nhận bất cứ điều gì — tập lệnh, tải trọng quá lớn, các nỗ lực tiêm SQL. AI thêm xác thực phía máy khách (mà người dùng có thể vượt qua) nhưng bỏ qua xác thực phía máy chủ. Sửa: Thêm lược đồ Zod hoặc xác thực tương tự trên mọi điểm cuối API. Thời gian: 30 phút cho mỗi điểm cuối.
4. Không Có Giới Hạn Tốc Độ. Bất kỳ ai cũng có thể truy cập API của bạn 1.000 lần mỗi giây. Không throttling, không bảo vệ chống lạm dụng. Sửa: Thêm giới hạn tốc độ thông qua Upstash Redis hoặc tương tự. Thời gian: 20 phút.
5. Tuyến Không Được Bảo Vệ. Các trang bảng điều khiển, bảng điều khiển quản trị, và các điểm cuối dữ liệu người dùng tải mà không kiểm tra xem người dùng có đã đăng nhập không. Sửa: Thêm middleware xác thực vào mọi tuyến được bảo vệ. Thời gian: 15 phút.
Nhận giá trị từ điều này? Chúng tôi xuất bản hướng dẫn bảo mật cho các dự án được xây dựng bằng AI hàng tuần. Tham gia những độc giả xây dựng an toàn →
Cách Kiểm Toán Dự Án Của Bạn
Thực hiện danh sách kiểm tra này cho bất kỳ dự án nào được xây dựng với các công cụ lập trình AI:
Tìm kiếm toàn bộ cơ sở mã của bạn để tìm khóa được mã hóa cứng. Chạy: grep -r "sk-" . && grep -r "api_key" . && grep -r "secret" . trong thư mục dự án của bạn. Bất kỳ trận đấu nào trong các tệp frontend đều là lỗ hổng bảo mật quan trọng.
Kiểm tra xác thực đầu vào cho mọi điểm cuối API. Mở mỗi tệp tuyến API. Nếu nó trực tiếp sử dụng req.body mà không xác thực, nó dễ bị tấn công.
Xác minh bảo mật cơ sở dữ liệu. Nếu sử dụng Supabase, hãy kiểm tra tab Authentication → Policies. Nếu không có chính sách RLS, mọi người dùng đều có thể xem dữ liệu của mọi người dùng khác.
Kiểm tra xác thực trên mọi trang. Mở trình duyệt ở chế độ ẩn danh (không đăng nhập) và điều hướng đến mọi trang trong ứng dụng của bạn. Nếu bất kỳ trang bảng điều khiển hoặc trang dành riêng cho người dùng nào tải, tuyến đó không được bảo vệ.
Kiểm tra giới hạn tốc độ. Hãy thử truy cập điểm cuối API của bạn 100 lần liên tiếp bằng cách sử dụng một tập lệnh đơn giản. Nếu cả 100 lần thành công, bạn không có giới hạn tốc độ.
Để có danh sách kiểm tra bảo mật hoàn chỉnh, hãy xem hướng dẫn đầy đủ về bảo mật các ứng dụng vibe-coded. Để tìm hiểu những sai lầm phổ biến nhất và cách khắc phục chúng, hãy đọc 5 sai lầm bảo mật mà mọi vibe coder đều mắc phải.
Sự Chuyển Đổi Tư Duy
AI viết mã hoạt động. Bạn cần đảm bảo mã an toàn. Đây là hai kỹ năng khác nhau. Mọi lời nhắc cho một công cụ lập trình AI nên bao gồm các yêu cầu bảo mật cùng với các yêu cầu chức năng. "Thêm xác thực người dùng với giới hạn tốc độ, xác thực đầu vào, và tuyến được bảo vệ" sản xuất mã an toàn hơn nhiều so với "thêm xác thực người dùng."
Prompt Optimizer của chúng tôi có thể giúp bạn tự động thêm những thông số kỹ thuật bảo mật này vào bất kỳ lời nhắc lập trình nào.
Đây là những gì chúng tôi làm mỗi tuần. Một bài viết sâu về các công cụ AI, quy trình công việc, và những quan điểm trung thực — không hype, không phần trám. Tham gia với chúng tôi →
Tiết lộ: Một số liên kết trong bài viết này là liên kết liên kết. Chúng tôi chỉ khuyến nghị các công cụ mà chúng tôi đã kiểm tra cá nhân và sử dụng thường xuyên. Xem chính sách tiết lộ đầy đủ của chúng tôi.