Có một post đang khá nóng bên r/vibecoding với câu đùa nghe vui nhưng chạm đúng nỗi đau của nhiều anh em: thay vì triển khai Two-Factor Authentication cho tử tế, sản phẩm lại vô tình rơi về kiểu “One-Factor Authentication” vì code sinh quá nhanh, review quá muộn, và ai cũng nghĩ đoạn auth này chắc đã ổn rồi.
Điểm đáng nói là đây không chỉ là meme. Nó là một dạng tin xấu rất thật của làn sóng vibe coding hiện tại: AI giúp anh em ship nhanh hơn hẳn, nhưng những phần nhạy cảm như đăng nhập, phân quyền, reset mật khẩu, session hay OTP lại là nơi cực dễ sinh lỗi âm thầm.
Vì sao auth là chỗ dễ hỏng nhất khi vibe code
Khi mình để AI sinh flow đăng nhập, kết quả thường nhìn rất thuyết phục:
- có form
- có API
- có thông báo lỗi
- có cả màn hình nhập mã xác thực
Nhưng cái nguy hiểm là cảm giác “trông giống như đã xong” không đồng nghĩa với việc security thực sự đúng.
Một flow 2FA có thể hỏng theo nhiều kiểu rất đời thường:
- backend cho phép bypass bước OTP trong một số nhánh
- frontend hiện màn 2FA nhưng API phía sau không bắt buộc verify
- token phiên đăng nhập được cấp quá sớm, trước khi xác thực đủ bước
- cơ chế remember device bị làm tắt quá rộng
- luồng reset password vô tình trở thành đường vòng né 2FA
- rate limit thiếu, khiến OTP hoặc mã khôi phục bị brute force
Với code do AI sinh, các lỗi này còn khó thấy hơn vì từng hàm riêng lẻ đều có vẻ hợp lý. Vấn đề nằm ở chỗ ghép luồng end-to-end.
Bài học vận hành cho anh em đang dùng AI để ship nhanh
Nếu sản phẩm có đăng nhập, thanh toán, dữ liệu khách hàng hoặc quyền quản trị, mình nghĩ anh em nên coi auth là vùng cấm “ship theo cảm giác”. Cứ dùng AI để tăng tốc, nhưng phải có lớp kiểm soát riêng.
Mình đang nghiêng về checklist ngắn này:
1. Vẽ lại auth flow bằng mắt người, không chỉ đọc code
Anh em nên tự viết ra các bước:
- user nhập mật khẩu
- hệ thống kiểm tra gì
- lúc nào mới cấp session
- khi nào bắt OTP
- trường hợp nào được bỏ qua OTP
- logout thì huỷ cái gì
- đổi mật khẩu thì session cũ còn sống không
Chỉ cần viết flow bằng tiếng người, rất nhiều lỗ hổng sẽ tự lộ ra.
2. Test các đường vòng, không chỉ test happy path
Happy path gần như lúc nào AI cũng làm được. Thứ cần soi là:
- refresh tab giữa chừng
- gọi trực tiếp API bỏ qua UI
- dùng session cũ sau khi đổi mật khẩu
- thử reset password khi đã đăng nhập
- đăng nhập bằng nhiều thiết bị cùng lúc
- nhập sai OTP liên tục
- dùng lại mã cũ
Nếu không test mấy nhánh này, anh em rất dễ có một màn hình 2FA đẹp mắt nhưng thực chất chỉ là đồ trang trí.
3. Tách security review khỏi feature review
Nhiều team review code theo góc nhìn tính năng: chạy được chưa, UX ổn chưa, có bug rõ ràng không. Nhưng auth cần một vòng hỏi khác:
- quyền này có bị leo thang không
- trạng thái nào có thể bị giả mạo
- API nào tin dữ liệu từ client quá mức
- session/token có bị cấp sai thời điểm không
- secret, OTP, recovery code đang được lưu và xoá ra sao
Nếu không có người chuyên security, ít nhất anh em nên có một buổi review riêng chỉ để phá luồng auth.
4. Ưu tiên dịch vụ auth chín hơn là tự ráp từ đầu
Nếu bài toán của anh em không quá đặc thù, dùng giải pháp auth đã trưởng thành thường đáng tiền hơn nhiều so với tự vibe code toàn bộ.
AI rất hợp để nối integration, làm UI, viết glue code, thêm audit log, hoặc dựng admin tooling xung quanh. Nhưng phần lõi xác thực, phân quyền, recovery và session management thì càng ít tự chế càng tốt.
5. Gắn alert cho các tín hiệu bất thường từ ngày đầu
Một số tín hiệu nên có log và cảnh báo sớm:
- số lần nhập OTP sai tăng đột biến
- nhiều lần đăng nhập thất bại trên cùng tài khoản
- nhiều session mới từ vị trí hoặc thiết bị lạ
- đổi email, đổi mật khẩu, tắt 2FA liên tiếp trong thời gian ngắn
- tài khoản admin đăng nhập ngoài giờ bất thường
Không có quan sát thì lỗi auth chỉ được phát hiện khi đã thành sự cố.
Tin tức đáng chú ý phía sau meme này
Điều mình thấy thú vị là cộng đồng vibe coding bắt đầu nói nhiều hơn về mặt trái của tốc độ. Trước đây chủ đề hot thường xoay quanh ship sản phẩm nhanh, tăng traffic nhanh, hoặc một người với AI có thể làm bằng cả team. Còn bây giờ, những post kiểu này cho thấy anh em bắt đầu quay lại câu hỏi cũ nhưng quan trọng hơn: ship nhanh tới đâu mà vẫn không tự đốt niềm tin người dùng.
Đây là tín hiệu tốt. Khi cộng đồng chuyển từ khoe tốc độ sang nói về độ bền, chất lượng sản phẩm sẽ đi lên.
Cách mình chốt lại chuyện này
Nếu anh em đang vibe code sản phẩm thật, hãy coi auth như hệ thống an toàn điện của toà nhà: bình thường không ai để ý, nhưng hỏng một lần là trả giá rất đắt.
AI vẫn nên được dùng để tăng tốc mạnh. Nhưng ở các flow nhạy cảm, nguyên tắc hợp lý là:
- AI viết nháp
- con người vẽ lại luồng
- test theo tình huống phá
- review quyền và trạng thái
- chỉ ship khi đã chứng minh là không có đường vòng nguy hiểm
Meme thì vui thật, nhưng nếu đọc đúng, nó là một lời nhắc khá đắt giá cho anh em làm sản phẩm bằng AI lúc này.
Top comments (0)