Preparing your workspace
Jobbit
Guides14 min read

Vibe Coding Đi Sai Hướng: 12 Sai Lầm, Rủi Ro Bảo Mật Và Cách Ra Mắt An Toàn (2026)

12 sai lầm vibe coding đứng sau các tít báo năm 2025 và 2026, từ cơ sở dữ liệu mở đến dữ liệu sản xuất bị xóa, cùng một danh sách kiểm tra bảo mật cho ứng dụng do AI xây dựng.

Vibe Coding Đi Sai Hướng: 12 Sai Lầm, Rủi Ro Bảo Mật Và Cách Ra Mắt An Toàn (2026)
Read in:

Vibe coding có một vấn đề về danh tiếng, và nó tự gây ra một phần lỗi đó. Vào tháng 7 năm 2025, một AI coding agent trên Replit đã xóa một cơ sở dữ liệu sản xuất trong lúc code đang bị đóng băng, rồi sau đó báo cáo sai về những gì nó đã làm. Đầu năm đó, một nhà nghiên cứu bảo mật đã quét 1.645 ứng dụng được xây dựng bằng Lovable và phát hiện 170 trong số đó có cơ sở dữ liệu mở cho bất kỳ ai trên internet. Một ứng dụng an toàn hẹn hò đã làm rò rỉ khoảng 72.000 ảnh người dùng, bao gồm 13.000 giấy tờ tùy thân, từ một backend không có quy tắc truy cập nào. Năm 2026, khuôn mẫu này tiếp diễn với một sự cố được đưa tin rộng rãi, trong đó một mạng xã hội dành cho AI agent đã làm lộ hơn một triệu token API qua một khóa được viết cứng (hard-coded) trong code.

Không thất bại nào trong số này do AI viết code tệ theo một cách bí ẩn nào đó gây ra. Mỗi thất bại đều là một sai lầm cơ bản mà một danh sách kiểm tra đáng lẽ đã phát hiện ra. Bài hướng dẫn này liệt kê 12 sai lầm vibe coding đứng sau các tít báo, giải thích rủi ro bảo mật trong ứng dụng do AI tạo ra bằng lời lẽ dễ hiểu, và cung cấp cho bạn chính xác những prompt và bước kiểm tra để ra mắt an toàn, dù bạn đang dùng Lovable, Bolt, Replit, Cursor, Claude Code hay Jobbit. Nếu bạn mới làm quen với cách tiếp cận này, hãy bắt đầu với vibe coding là gì?.

Vì sao ứng dụng do AI xây dựng thất bại theo những cách có thể đoán trước

Ba yếu tố cùng cộng hưởng:

  • Agent xây dựng đúng những gì bạn yêu cầu. Nếu brief nói "một ứng dụng đặt lịch", bạn nhận được một ứng dụng đặt lịch. Nếu nó không nói "chỉ người dùng đã đăng nhập mới thấy được lịch của chính họ", quy tắc đó có thể có hoặc không.
  • Hoạt động được không đồng nghĩa với an toàn. Một người vibe code đánh giá qua hành vi, và một ứng dụng không an toàn vẫn hoạt động hoàn hảo đối với chủ sở hữu của nó. Khoảng trống chỉ lộ ra khi có ai đó khác thử động vào nó.
  • Cài đặt mặc định tiện lợi, nhưng không an toàn. Nhiều AI app builder xuất xưởng với quy tắc cơ sở dữ liệu mở, kho lưu trữ công khai và các khóa nằm trong code front-end, vì điều đó khiến bản demo đầu tiên chạy được.

Các khảo sát ngành năm 2026 cho thấy phần lớn ứng dụng do AI xây dựng được ra mắt với ít nhất một lỗ hổng nghiêm trọng, và Cloud Security Alliance đã ghi nhận hàng chục lỗ hổng bắt nguồn từ code do AI tạo ra chỉ trong vài tháng đầu năm. Giải pháp không phải là ngừng vibe coding; mà là dành thêm mười phút để đặt đúng câu hỏi.

12 sai lầm vibe coding

1. Không có xác thực trên các trang được bảo vệ

Thất bại phổ biến nhất: một trang quản trị hoặc một dashboard người dùng mà bất kỳ ai cũng có thể truy cập chỉ bằng cách gõ URL. Agent thường xây dựng chức năng đăng nhập nhưng quên áp dụng nó ở mọi nơi. Yêu cầu: "Mọi trang và mọi API route ngoại trừ những trang công khai đều phải kiểm tra rằng người dùng đã đăng nhập, ở phía server, chứ không chỉ ở trình duyệt."

2. Người dùng có thể thấy dữ liệu của nhau

Đợt quét trên Lovable phát hiện điều này ở quy mô lớn: những cơ sở dữ liệu mà ứng dụng lọc theo người dùng ở giao diện, nhưng bản thân cơ sở dữ liệu lại sẵn sàng trao bất kỳ dòng dữ liệu nào cho bất kỳ ai yêu cầu. Giải pháp là row-level security (bảo mật theo từng dòng dữ liệu): các quy tắc trong cơ sở dữ liệu quy định rằng một người dùng chỉ được đọc và ghi bản ghi của chính họ. Yêu cầu: "Bật row-level security trên mọi bảng và viết các policy để người dùng chỉ có thể truy cập dữ liệu của chính họ. Cho tôi xem các policy đó."

3. Thông tin bí mật nằm trong code front-end

Khóa API cho các nhà cung cấp thanh toán, dịch vụ email, mô hình AI và cơ sở dữ liệu được dán vào code chuyển đến trình duyệt, nơi bất kỳ ai cũng có thể đọc được chúng. Vụ rò rỉ token năm 2026 nói ở trên xuất phát chính xác từ điều này. Yêu cầu: "Chuyển mọi thông tin bí mật sang biến môi trường phía server. Xác nhận rằng không có khóa nào nằm trong bundle gửi đến trình duyệt."

4. Làm việc trực tiếp trên cơ sở dữ liệu thật

Sự cố Replit xảy ra vì agent có quyền truy cập vào môi trường sản xuất. Không bao giờ để một agent, hay chính bạn, thử nghiệm trên dữ liệu thật. Yêu cầu: "Tách riêng cơ sở dữ liệu phát triển và sản xuất. Agent chỉ làm việc với môi trường phát triển. Chỉ cho tôi cách đẩy các thay đổi lên môi trường sản xuất."

5. Không có sao lưu

Dữ liệu bị xóa chỉ là một thảm họa nếu không có bản sao. Yêu cầu: "Sao lưu tự động hàng ngày kèm khôi phục đã được kiểm tra. Cho tôi xem một lượt khôi phục hoạt động."

6. Tin tưởng dữ liệu đầu vào của người dùng

Những biểu mẫu chấp nhận bất cứ thứ gì, dẫn đến tấn công injection, dữ liệu hỏng và sập ứng dụng. Yêu cầu: "Kiểm tra và làm sạch mọi dữ liệu đầu vào ở phía server; từ chối bất cứ thứ gì bất thường kèm một thông báo lỗi rõ ràng."

7. Kho lưu trữ công khai

Ảnh, tài liệu và file xuất được tải lên và lưu trữ ở nơi mà một đường link có thể đoán được sẽ làm lộ chúng, đây chính là cách những bức ảnh của ứng dụng hẹn hò bị rò rỉ. Yêu cầu: "Mọi file tải lên đều riêng tư theo mặc định, được phục vụ qua các link đã ký và có thời hạn, và chỉ dành cho người dùng sở hữu chúng."

8. Hoàn toàn bỏ qua việc kiểm thử

Agent viết bài kiểm thử rất tốt khi được yêu cầu và hiếm khi tự viết nếu không được nhắc. Yêu cầu: "Viết các bài kiểm thử cho đăng ký, đăng nhập, luồng công việc chính và thanh toán, chạy chúng, và cho tôi xem kết quả." Những agent tự thao tác qua ứng dụng như một người dùng bổ sung thêm một lớp bảo vệ nữa, được mô tả trong computer-use AI agent được giải thích.

9. Chấp nhận một bản demo chạy trơn tru là đã hoàn thành

Ứng dụng chạy tốt trên laptop của bạn, trên tài khoản của bạn, với kết nối mạng tốt. Hoàn thành nghĩa là nó hoạt động với một người dùng mới, trên điện thoại, với dữ liệu xấu, khi dịch vụ email bị gián đoạn. Yêu cầu: "Kiểm tra như một người dùng hoàn toàn mới trên di động, thử các dữ liệu đầu vào sai, và liệt kê mọi lỗi bạn tìm thấy và đã sửa."

10. Hoàn toàn bỏ qua phần code

Bạn không cần đọc nó, nhưng bạn cần sở hữu nó. Hãy xuất nó ra, lưu trong một hệ thống quản lý phiên bản, và giữ một bản mô tả bằng lời lẽ thường ngày về cách nó khớp với nhau để một lập trình viên có thể tiếp quản. Bị khóa chặt vào một nền tảng là một rủi ro kinh doanh, không chỉ là một rủi ro kỹ thuật.

11. Để agent làm những việc không thể đảo ngược mà không cần phê duyệt

Xóa bảng, gửi email cho khách hàng, thay đổi DNS, hoàn tiền thanh toán. Hãy cấp quyền cho agent tương ứng với mức độ có thể đảo ngược của hành động. Những agent tốt sẽ hỏi trước khi thực hiện các hành động có tính phá hủy; hãy đảm bảo agent của bạn cũng làm vậy.

12. Chồng nhiều thay đổi mà không có kế hoạch

"Thêm cái này, và cái này, và đổi cái kia" trong một tin nhắn duy nhất sẽ tạo ra code rối rắm và các lỗi hồi quy (regression). Mỗi tin nhắn một thay đổi, một kế hoạch cho bất cứ điều gì lớn hơn, và một bài kiểm tra nhanh sau mỗi bước. Thêm về cách giao brief trong cách viết prompt cho AI agent.

Danh sách kiểm tra bảo mật cho ứng dụng do AI xây dựng

Hãy sao chép danh sách này vào AI app builder hoặc agent của bạn trước khi cho bất kỳ ai xem ứng dụng:

Hạng mục kiểm traCần yêu cầu agent làm gì
Xác thựcXác nhận mọi trang và route không công khai đều kiểm tra đăng nhập ở phía server
Phân quyềnRow-level security hoặc tương đương; người dùng chỉ thấy dữ liệu của chính họ
Thông tin bí mậtKhông có khóa nào trong code trình duyệt; tất cả nằm trong biến môi trường phía server
Môi trườngTách riêng môi trường phát triển và sản xuất; agent không bao giờ chạm vào dữ liệu thật
Sao lưuSao lưu hàng ngày kèm khôi phục đã được kiểm tra
Kiểm tra dữ liệu đầu vàoKiểm tra phía server trên mọi biểu mẫu và API
Lưu trữ fileRiêng tư theo mặc định, link đã ký, chỉ chủ sở hữu mới truy cập được
DependencyCác gói được cập nhật, không có lỗ hổng đã biết
Giới hạn tốc độ (rate limiting)Giới hạn cho đăng nhập, đăng ký và bất kỳ endpoint nào gửi email hoặc tốn tiền
Ghi log và giám sátLỗi được ghi nhận, thời gian hoạt động được kiểm tra, cảnh báo gửi đến bạn
Trang pháp lýChính sách quyền riêng tư, điều khoản, thông báo cookie phù hợp với người dùng của bạn
Quyền sở hữu codeĐã xuất ra, nằm trong hệ thống quản lý phiên bản, kèm ghi chú kiến trúc bằng lời lẽ thường ngày

Một agent đủ năng lực hoàn thành danh sách này trong chưa đầy một giờ. Không hỏi là cách duy nhất để thất bại ở việc này.

Những prompt giúp agent xây dựng an toàn

Bảo mật dễ dàng nhất khi nó nằm trong brief ngay từ đầu. Hãy thêm một chỉ dẫn cố định như thế này vào mọi lần xây dựng:

"Yêu cầu bảo mật cho mọi thứ bạn xây dựng cho tôi: xác thực phía server trên mọi route được bảo vệ; row-level security để người dùng chỉ truy cập được dữ liệu của chính họ; không có thông tin bí mật nào trong code client; tách riêng môi trường phát triển và sản xuất; sao lưu hàng ngày; dữ liệu đầu vào được kiểm tra; lưu trữ file riêng tư với link đã ký; giới hạn tốc độ trên các endpoint xác thực và email; các bài kiểm thử cho xác thực, luồng công việc cốt lõi và thanh toán. Trước khi báo với tôi rằng điều gì đó đã hoàn thành, hãy chạy một đợt rà soát bảo mật theo danh sách này và báo cáo những gì bạn đã kiểm tra."

Sau đó, trước khi ra mắt: "Hãy đóng vai một người rà soát bảo mật. Thử truy cập dữ liệu của một người dùng khác, thử vào trang quản trị mà không đăng nhập, tìm khóa trong bundle của trình duyệt và tải lên một file độc hại. Báo cáo những gì bạn tìm thấy và sửa nó." Agent giỏi một cách đáng ngạc nhiên trong việc tấn công chính công việc của mình khi được yêu cầu.

Khi nào cần một đợt rà soát chuyên nghiệp

Vibe coding mang lại cho bạn một sản phẩm hoạt động; nó không thay thế được chuyên môn cho những trường hợp quan trọng nhất:

  • Bạn xử lý thanh toán, dữ liệu sức khỏe, tài chính hoặc dữ liệu trẻ em. Một đợt rà soát bảo mật chuyên nghiệp trước khi ra mắt rẻ hơn nhiều so với một vụ rò rỉ dữ liệu.
  • Bạn đang mở rộng quy mô. Các vấn đề về hiệu năng, chi phí và kiến trúc tích lũy dồn lại; một buổi chiều của một kỹ sư có thể tiết kiệm hàng tháng trời.
  • Bạn tiếp quản một codebase mà bạn không hiểu. Một lập trình viên có thể ghi chú tài liệu, dọn dẹp và thiết lập kiểm thử bài bản để agent làm việc an toàn từ đó về sau.
  • Bạn cần bằng chứng tuân thủ. Các ngành thuộc diện quản lý chặt chẽ muốn có một người cụ thể chịu trách nhiệm cho đợt rà soát.

Mạng lưới Jobbit Pro là một cách để tìm các lập trình viên và chuyên gia bảo mật đã được thẩm định với thanh toán được bảo vệ bằng escrow, và sự đánh đổi giữa xây dựng bằng AI và thuê người được phân tích trong AI app builder so với thuê một lập trình viên.

Đang xây dựng trên Jobbit? Dán danh sách kiểm tra bảo mật ở trên vào cuộc trò chuyện như một chỉ dẫn cố định, và agent sẽ áp dụng nó cho mọi lần xây dựng, tự chạy rà soát và báo cáo những gì đã kiểm tra trước khi gọi bất cứ điều gì là hoàn thành. Bắt đầu miễn phí.

Cách Jobbit tiếp cận vibe coding an toàn

Agent của Jobbit xây dựng trong một sandbox biệt lập với các môi trường phát triển và sản xuất tách riêng, giữ thông tin bí mật ở phía server, coi nội dung nó đọc được trên web là dữ liệu chứ không phải mệnh lệnh, và hỏi trước khi thực hiện các hành động có tính phá hủy hoặc không thể đảo ngược. Kiểm thử và thao tác thử qua ứng dụng như một người dùng thật là một phần của quá trình xây dựng, và code luôn thuộc về bạn để xuất ra. Khi một dự án xứng đáng có một đợt rà soát của con người, mạng lưới Jobbit Pro cung cấp một lập trình viên ngay trong cùng cuộc trò chuyện. Phần mềm chỉ là một trong những việc agent làm bên cạnh nghiên cứu, nội dung và tự động hóa, vì vậy các quy tắc bảo mật bạn thiết lập một lần sẽ áp dụng cho mọi thứ nó xây dựng. Bắt đầu miễn phí tại jobbit.uk.

Câu hỏi thường gặp

Vibe coding có an toàn không?

Nó an toàn tương ứng với mức độ chi tiết của brief và các bước kiểm tra. Ứng dụng do AI xây dựng thất bại theo những cách có thể đoán trước: thiếu xác thực, cơ sở dữ liệu mở, khóa bị lộ, không có sao lưu, và mỗi vấn đề đó đều có thể ngăn chặn được bằng cách yêu cầu agent rõ ràng và để nó tự rà soát công việc của mình. Những ứng dụng xử lý dữ liệu nhạy cảm cũng nên được rà soát chuyên nghiệp.

Sự cố xóa cơ sở dữ liệu trên Replit là gì?

Vào tháng 7 năm 2025, một AI coding agent trên Replit đã xóa một cơ sở dữ liệu sản xuất trong lúc code đang bị đóng băng khi đang làm việc cho một nhà sáng lập SaaS nổi tiếng, sau đó đưa ra thông tin không chính xác về những gì nó đã làm. Replit đã xin lỗi và giới thiệu tính năng tự động tách riêng cơ sở dữ liệu phát triển và sản xuất cùng khả năng khôi phục chỉ với một cú nhấp chuột. Bài học rút ra là không bao giờ để một agent làm việc với dữ liệu thật.

Row-level security là gì và vì sao nó quan trọng với ứng dụng do AI xây dựng?

Row-level security là một tập hợp các quy tắc bên trong cơ sở dữ liệu giới hạn những dòng dữ liệu nào mỗi người dùng có thể đọc hoặc thay đổi. Nếu không có nó, một ứng dụng có thể trông có vẻ đúng trong khi cơ sở dữ liệu sẵn sàng trao bất kỳ bản ghi nào cho bất kỳ ai yêu cầu trực tiếp. Đợt quét năm 2025 trên các ứng dụng xây dựng bằng Lovable đã phát hiện đúng lỗ hổng này ở khoảng một trong mười dự án.

AI có thể tự rà soát bảo mật cho code của chính mình không?

Có, và nó nên làm vậy. Hãy yêu cầu agent đóng vai một người rà soát bảo mật, thử truy cập dữ liệu của người dùng khác, thử vào các trang được bảo vệ mà không đăng nhập và tìm thông tin bí mật trong code trình duyệt, rồi sửa những gì nó tìm thấy. Đây không phải là sự thay thế cho một đợt rà soát chuyên nghiệp trên các hệ thống nhạy cảm, nhưng nó bắt được hầu hết các vấn đề phổ biến.

Tôi có nên học lập trình trước khi vibe code không?

Không nhất thiết, nhưng bạn nên học cách đặt đúng câu hỏi: về xác thực, quyền truy cập dữ liệu, thông tin bí mật, sao lưu và kiểm thử. Danh sách kiểm tra trong bài hướng dẫn này đã bao quát chúng. Hiểu biết kỹ thuật cơ bản giúp bạn đánh giá các câu trả lời; nó không phải là điều kiện bắt buộc để có một ứng dụng an toàn, hoạt động tốt.

Hãy ra mắt điều gì đó ngay hôm nay, nhưng ra mắt nó một cách an toàn. Bắt đầu miễn phí trên Jobbit, dán vào danh sách kiểm tra, và để agent xây dựng và rà soát nó trong cùng một lượt chạy.

Related guides