Không quét khi chưa có sự đồng ý

Web app do AI tạo — trước khi phát hành,
chúng tôi kiểm tra kỹ lưỡng

Máy quét đọc mã nguồn của bạn. Nhưng sự cố lại xảy ra ở thứ đã triển khai — khóa API lọt vào trình duyệt, thông tin kết nối và bản dump cơ sở dữ liệu ai cũng tải được, API không xác thực. Chúng tôi nhìn vào thực tế đã triển khai. Và ghi lại cả những gì chưa xác minh được.

400+bí mật bị lộ (khóa API, token) tìm thấy trên ~1.400 app vibe-coding đang chạy
175trường hợp lộ dữ liệu cá nhân (PII) trong cùng đợt quét — gồm tài khoản ngân hàng và dữ liệu nhạy cảm khác
45%tỷ lệ mã do AI sinh ra chứa lỗ hổng thuộc OWASP Top 10

Nguồn: Escape.tech — State of Security of Vibe Coded Apps (2025, ~1.400 app, 2.038 lỗ hổng nghiêm trọng) · Veracode 2025 GenAI Code Security Report (100+ LLM) · số liệu ngành, không phải đo trên app của bạn

🔒 Một lời hứa chúng tôi luôn giữ

Chúng tôi không quét gì cho đến khi bạn chứng minh mình kiểm soát tên miền. Không phải ô “Tôi đồng ý” — mà là một bằng chứng chỉ bạn mới tạo được. Không ai có thể nhập tên miền của bạn rồi yêu cầu quét.

Kiểm tra nội bộ qua SSH chỉ chạy khi có yêu cầu rõ ràng và quyền truy cập riêng. Kết quả chỉ gửi cho bạn và không bao giờ công bố. Mọi bí mật tìm thấy chỉ giữ dưới dạng vân tay — không lưu bản gốc.

HOW IT WORKS

Ba bước — và bước thứ hai là mấu chốt

Bước thứ hai — chứng minh sự đồng ý — chính là điều làm dịch vụ này an toàn.

1

Cho chúng tôi biết tên miền

Nhập địa chỉ web app cần kiểm tra, chúng tôi cấp một token duy nhất chỉ gắn với yêu cầu của bạn.

2

Chứng minh quyền kiểm soát

Đặt token tại /.well-known/star365-audit-consent.txt hoặc thêm bản ghi DNS TXT. Việc đặt được token ở đó chính là bằng chứng bạn là chủ tên miền.

3

Chúng tôi kiểm tra, bạn nhận biên nhận

Chỉ kiểm tra sau khi đã xác minh token. Đạt, thất bại (cảnh báo/nguy hiểm) — và những mục chưa xác minh được — tất cả trong một biên nhận chống giả mạo.

TRY IT

Thử ngay luồng đồng ý

Việc kiểm tra thật chạy trên máy chủ của chúng tôi, nhưng bạn có thể trải nghiệm luồng yêu cầu và cấp token ngay tại đây.

star365 Cửa kiểm tra triển khai
Trang này không chạy quét thật. Vì dò máy chủ của người khác từ trình duyệt bản thân đã nguy hiểm. Việc kiểm tra thật chỉ chạy trên máy chủ của chúng tôi, sau khi đã xác minh sự đồng ý.

WHAT WE CHECK

20 mục chúng tôi kiểm tra

Danh sách này được tạo từ những gì engine kiểm tra khai báo, không phải gõ tay — engine đổi thì bảng đổi theo. Mỗi mục nhận một trong ba kết quả: đạt, không đạt, chưa xác định.

Khả năng truy cập

Trang có phản hồi không. Không đọc được thì không phán xét các mục khác.

reachable

Bí mật phía client

Khóa API hay bí mật khác có nằm trong HTML/JS gửi tới trình duyệt không.

client_secrets

Lộ source map

Liệu source map công khai (.map hoặc data-URI nội tuyến) có cho phép dựng lại mã nguồn gốc từ bundle — ngay cả khi bundle không có bí mật, logic giá, luồng nội bộ và chú thích vẫn bị lộ. Đây chính là mục tiêu của kỹ thuật dịch ngược từ bên ngoài.

source_maps

Đường dẫn nhạy cảm bị lộ

Các đường dẫn như .env hay .git có truy cập được từ bên ngoài không.

exposed_paths

Header bảo mật

Bốn header bảo mật chính như CSP và HSTS đã được đặt chưa.

security_headers

Soft-404

URL không tồn tại có trả về 200 không — máy sẽ đọc URL gõ sai như trang thật.

soft_404

Thuộc tính bảo mật cookie

Trên site https có cookie nào thiếu Secure không — có thể rò rỉ qua yêu cầu không mã hóa.

cookie_flags

Robots tự chặn

robots.txt có chặn trang công khai này với mọi trình thu thập không. Không có tệp là bình thường.

robots_sanity

Nội dung khi không có JS

HTML nhận được khi không chạy JavaScript đã có nội dung chưa — trình thu thập và xem trước liên kết không chạy JS.

server_rendered_body

Lỗi console khi chạy

Mở bằng trình duyệt thật và xem console có lỗi không.

runtime_errors

Tài nguyên hỏng

Script, ảnh hay tài nguyên khác có tải lỗi không.

broken_assets

Nội dung hỗn hợp

Trang https có tải tài nguyên http không.

mixed_content

Thực sự hiển thị

Nội dung có thực sự hiện ra không — 200 vẫn có thể là màn hình trắng.

renders_content

Tràn ngang trên mobile

Màn hình hẹp có bị cuộn ngang không.

mobile_overflow

Liên kết nội bộ hỏng

Đi theo các liên kết nội bộ để xem có mở được không.

internal_links

Khả năng đọc

Đo cỡ chữ và độ tương phản trên trang đã hiển thị — tối thiểu 12px, WCAG AA (4,5:1 chữ thường, 3:1 chữ lớn). Không xác định được nền thì không phán xét.

readability

Gọi địa chỉ nội bộ

Trang công khai có gọi localhost hay IP nội bộ không — địa chỉ API dành cho dev còn sót trong bản build sẽ lỗi với mọi khách truy cập.

private_network_calls

API không xác thực

Các đường dẫn API phổ biến có trả danh sách thông tin người dùng (email, điện thoại…) mà không cần đăng nhập không — chỉ kiểm tra bằng GET, không lưu giá trị.

open_api_data

Supabase RLS

Nếu gói mã có địa chỉ Supabase và khóa anon, kiểm tra từng bảng mà gói đã gọi bằng một yêu cầu GET với khóa ẩn danh để xem RLS đã bật chưa. Không đọc giá trị của hàng, chỉ xem tên cột.

supabase_rls

Lộ phiên bản phần mềm

Kiểm tra xem tiêu đề Server, X-Powered-By hoặc thẻ generator có lộ chuỗi phiên bản như nginx/1.24.0 hay không. Phiên bản không phải là lỗi, nhưng cho kẻ tấn công manh mối. Chúng tôi không đánh giá nó có dễ bị tấn công hay không.

version_disclosure

SAMPLE REPORT

Biên nhận trông như thế này

Một ví dụ kiểm tra thật. Không chỉ các mục đạt — chúng tôi còn ghi những gì chưa xem được và những gì cần sửa.

example-app.com 2026-09-19 · Kiểm tra bên ngoài (đã xác minh đồng ý)
example-app.com 2026-09-19 · Kiểm tra nội bộ (đồng ý SSH)
Mỗi kết quả là một trong đạt / thất bại / chưa xác định, và mục thất bại kèm mức độ (cảnh báo/nguy hiểm). Việc không ngụy trang “chưa xác định” thành đạt chính là cốt lõi của biên nhận — đó là lý do đèn xanh của máy quét miễn phí có thể nguy hiểm.

WHY US

Vì sao máy quét miễn phí là chưa đủ

Bản miễn phí của Snyk và Semgrep rất tốt. Nhưng chúng đọc mã nguồn.

Máy quét miễn phí (dựa trên mã nguồn)

  • Mẫu lỗ hổng đã biết trong mã nguồn
  • CVE của thư viện phụ thuộc
  • Dừng ở “tìm thấy N vấn đề” — không nói đã bỏ sót gì
  • Không thấy sản phẩm triển khai và cấu hình runtime

Chúng tôi (dựa trên thực tế triển khai)

  • Khóa trong bundle trình duyệt — xem thứ thực sự được phục vụ
  • Bản dump DB và đường dẫn nhạy cảm — thực sự gửi yêu cầu
  • Đánh dấu rõ thứ chưa kiểm được là “chưa xác định”
  • Khi đồng ý, kiểm tra nội bộ SSH — quyền, tường lửa, cấu hình

FAQ

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

Để con người và công cụ trả lời AI đọc cùng một câu trả lời, chúng tôi để các câu hỏi thường gặp ngay tại đây.

Các bạn kiểm tra gì?

Không phải mã nguồn mà là thực tế đã triển khai. Khóa API lọt vào trình duyệt, thông tin kết nối cơ sở dữ liệu bị lộ ra ngoài, API không xác thực — và chúng tôi còn mở bằng trình duyệt thật để bắt lỗi console, tài nguyên hỏng, tràn ngang trên di động và liên kết chết. Tức là các sự cố xảy ra sau khi triển khai, nhìn từ bên ngoài.

Các bạn lấy sự đồng ý thế nào?

Không bằng ô đánh dấu mà bằng bằng chứng. Chúng tôi cấp một token; việc kiểm tra chỉ bắt đầu khi bạn chứng minh quyền sở hữu bằng cách đặt nó tại đường dẫn chỉ định trên tên miền hoặc làm bản ghi DNS TXT. Chúng tôi xác minh lại ngay trước khi quét.

Việc kiểm tra có an toàn không?

Kiểm tra bên ngoài chỉ dùng yêu cầu GET chỉ đọc. Không tiêm mã, không dò mật khẩu, không gây quá tải. Biên nhận kết quả được lưu dưới dạng chuỗi băm chống giả mạo.

Kết quả trông thế nào?

Mỗi kết quả là một trong đạt / thất bại / chưa xác định, và mục thất bại kèm mức độ (cảnh báo/nguy hiểm). Chúng tôi không gộp mục chưa đọc được thành đạt hay 0 — ghi lại cả những gì chưa xác minh được.

Có tốn phí không?

Kiểm tra bên ngoài miễn phí. Nếu muốn, bạn có thể đóng góp tự nguyện (phi giám hộ: USDT, USDC, BTC, ETH, BNB). Kiểm tra nội bộ SSH và giám sát liên tục được sắp xếp sau khi trao đổi, tùy phạm vi.

Liên quan: Yêu cầu kiểm tra · llms.txt · Đơn vị vận hành star365 · Đội giao dịch metaquant · Sơ đồ trang