Đến nội dung chính
OkayToShip

Báo cáo mẫu

Báo cáo mẫu trên ứng dụng thử nghiệm của chúng tôi. Chúng tôi làm một ứng dụng nhỏ và cố tình để lại các lỗi thường gặp, để bạn thấy chính xác báo cáo đầy đủ mang lại gì. Đây là kết quả thật của cùng các kiểm tra chúng tôi chạy trên dự án của bạn, quét ngày 11 thg 10, 2026.

Mẫudemo.okaytoship.com

Báo cáo mẫu trên ứng dụng thử nghiệm của chúng tôi · 11 thg 10, 2026

Điểm 23 trên 100

Chưa sẵn sàng ra mắt: 2 vấn đề nghiêm trọng có thể làm lộ dữ liệu hoặc tiền của bạn — hãy sửa trước.

22 vấn đề: 2 nghiêm trọng, 4 cao, 9 trung bình, 6 thấp, 1 thông tin

  • Bảo mậtNghiêm trọngKhóa chính của cơ sở dữ liệu hiển thị trong mã trang
  • Thanh toánNghiêm trọngKhóa bí mật Stripe của bạn hiển thị trong mã trang
  • SEOCần cải thiệnCông cụ tìm kiếm và bản xem trước liên kết thấy một trang trống
  • Tốc độỔnKhông có gì cần sửa
  • Pháp lýCần cải thiệnTrang chủ không có liên kết chính sách quyền riêng tư
  • Chi phíCần cải thiệnTrang của bạn gọi OpenAI trực tiếp từ trình duyệt của khách

22 vấn đề, đều đã mở

Báo cáo đầy đủ trông như thế này. Mở bất kỳ vấn đề nào để xem bằng chứng, rủi ro và cách sửa.

  • Ai cũng có thể sao chép khóa này và hành động như tài khoản Stripe của bạn: xem khách hàng và thanh toán của họ, hoàn tiền hoặc tạo khoản thu. Tiền thật có thể rời khỏi tài khoản của bạn.

    Làm ngay hôm nay: Thu hồi khóa này ngay trong bảng điều khiển Stripe và tạo khóa mới. Nó đã công khai, nên xóa khỏi mã là chưa đủ.

    Cách sửa
    1. Thu hồi khóa này ngay trong bảng điều khiển Stripe và tạo khóa mới. Nó đã công khai, nên xóa khỏi mã là chưa đủ.
    2. Chỉ đặt khóa mới ở phía máy chủ: Edge Function, route API hoặc backend đọc nó từ biến môi trường bí mật. Đừng bao giờ đặt tiền tố công khai như VITE_, NEXT_PUBLIC_ hoặc REACT_APP_.
    3. Cho trang gọi hàm máy chủ của bạn thay vì dùng khóa trực tiếp.
    4. Trong trình duyệt chỉ dùng khóa publishable. Tạo phiên thanh toán trên máy chủ bằng khóa bí mật.
    5. Xuất bản lại trang và chạy lần quét này để xác nhận khóa đã biến mất.

    My app exposes a Stripe live secret key in the frontend code that every visitor downloads (it starts with "sk_liv…"). Remove this key from all client-side code and from any environment variables that get bundled into the browser. Move every operation that needs it into a server-side function that reads the key from a secret environment variable, and change the frontend to call that function instead. In the browser use only the publishable key. Create checkout sessions on the server with the secret key. I will revoke the old key and add the new one to the secrets myself. If this needs a secret key, put the server-side code in a Supabase Edge Function and store the key in the project's secrets (not in the code). Keep everything else working exactly as it does now and don't touch unrelated files. When you're done, list what you changed.

    Chúng tôi tìm thấy gì
    https://demo.okaytoship.com/assets/index-D6yG_D9G.jsStripe live secret key: sk_liv…