Khi bạn thông thạo toàn bộ bảo mật trong app này, đây là sự khác biệt giữa app mặc định và app đã bảo mật.
💡 Mẹo: Copy prompt ở mỗi mục và paste vào Lovable chat để tự động thực hiện bảo mật cho app của bạn.
Meta author: "Lovable", badge hiện, domain *.lovable.app, placeholder.svg còn
Meta author: tên riêng, badge ẩn, custom domain, không placeholder
⚠️ Rủi ro nếu không làm: Người khác biết bạn dùng Lovable → dễ bị target tấn công theo lỗ hổng phổ biến
📋 Prompt copy-paste vào Lovable:
Hãy xóa tất cả meta tags liên quan đến Lovable trong __root.tsx, thay author thành tên tôi, và xóa file placeholder.svg cùng mọi reference đến nó
API keys chứa trong code hoặc dùng VITE_ prefix cho private keys
Private keys lưu trong Cloud Secrets, chỉ truy cập qua Server Functions
⚠️ Rủi ro nếu không làm: Hacker mở DevTools → thấy API key → dùng key đó để truy cập/tấn công dịch vụ của bạn
📋 Prompt copy-paste vào Lovable:
Chuyển tất cả API keys nhạy cảm sang Server Functions. Đảm bảo không có private key nào dùng prefix VITE_. Lưu keys trong Cloud Secrets.
Bảng không bật RLS → ai cũng đọc/ghi được mọi dữ liệu
RLS bật cho mọi bảng, policies kiểm soát chặt ai đọc/ghi gì
⚠️ Rủi ro nếu không làm: Một user có thể đọc dữ liệu của tất cả users khác, hoặc xóa/sửa dữ liệu tùy ý
📋 Prompt copy-paste vào Lovable:
Bật RLS cho tất cả bảng trong database. Tạo policies để users chỉ đọc và sửa data của chính mình. Test lại với các role khác nhau.
Không có auth, hoặc check admin bằng localStorage/hardcoded
Auth qua Lovable Cloud, session validate phía server, rate limiting
⚠️ Rủi ro nếu không làm: Ai cũng vào được trang admin, hoặc chỉ cần sửa localStorage là thành admin
📋 Prompt copy-paste vào Lovable:
Thêm authentication bằng Lovable Cloud Auth. Yêu cầu đăng nhập cho các route cần bảo vệ. Validate session phía server, không dùng localStorage để check quyền.
Role lưu trên bảng profiles hoặc check bằng client-side
Bảng user_roles riêng, security definer function, RLS policies theo role
⚠️ Rủi ro nếu không làm: Privilege escalation — user thường tự nâng thành admin bằng cách sửa request
📋 Prompt copy-paste vào Lovable:
Tạo hệ thống phân quyền với bảng user_roles riêng (không lưu role trên profiles). Tạo enum app_role, function has_role() với SECURITY DEFINER, và RLS policies sử dụng function này.
Nhận input từ user mà không validate → SQL injection, XSS
Validate mọi input bằng Zod schemas trong Server Functions
⚠️ Rủi ro nếu không làm: Hacker gửi dữ liệu xấu → phá database, đánh cắp data, hoặc chạy code độc
📋 Prompt copy-paste vào Lovable:
Thêm input validation bằng Zod cho tất cả Server Functions. Validate type, length, format của mọi user input trước khi xử lý.
Nhận webhook không verify signature, không rate limit
Verify signature mọi webhook, rate limiting, CORS configured đúng
⚠️ Rủi ro nếu không làm: Hacker giả mạo webhook → trigger hành động nguy hiểm (tạo đơn hàng giả, v.v.)
📋 Prompt copy-paste vào Lovable:
Thêm webhook signature verification cho mọi incoming webhooks. Implement rate limiting và configure CORS chỉ cho phép domain production.
SELECT * mọi nơi, không mã hóa PII, không backup
Select columns cần thiết, PII encrypted, backup định kỳ
⚠️ Rủi ro nếu không làm: Data breach lộ toàn bộ thông tin nhạy cảm của users
📋 Prompt copy-paste vào Lovable:
Refactor database queries chỉ select columns cần thiết. Mã hóa dữ liệu nhạy cảm (email, phone, address) trước khi lưu. Thiết lập export data định kỳ.