Tối ưu hóa rủi ro bảo mật
cho dự án, hệ thống
Quét mã nguồn PHP, Python, JavaScript/TypeScript, Java/Kotlin, Go, C#, C/C++, Rust, Swift, Dart và SQL. Mỗi lỗi được chỉ rõ nằm ở dòng nào, vì sao nguy hiểm, và sửa thế nào.
- 325+
- luật phát hiện
- 12
- ngôn ngữ
- OWASP
- ánh xạ Top 10
- 0
- dữ liệu gửi ra ngoài
Đăng nhập để bắt đầu quét
Tạo tài khoản miễn phí để quét mã nguồn, lưu lịch sử và tự sửa lỗi. Gói Free không mất phí.
Quét như thế nào
Ba bước, không cần cài thêm gì trên máy chủ.
Đọc hiểu cấu trúc mã
Bộ quét dựng cây token và mặt nạ đánh dấu vùng nào là chuỗi ký tự, vùng nào là chú thích — nên luôn phân biệt được đâu là mã đang chạy, đâu chỉ là văn bản, tránh báo nhầm.
Lần theo dữ liệu người dùng
Giá trị đến từ $_GET, request.args, req.body hay getParameter() được đánh dấu rồi theo dõi qua từng phép gán, destructuring và tham số handler — cho PHP, Python, JavaScript và Java. Khi nó chạm tới hàm nguy hiểm mà chưa được làm sạch, lỗi được ghi nhận.
Giải thích và đề xuất bản sửa
Mỗi phát hiện kèm đoạn mã gốc, lý do nguy hiểm, mã CWE tương ứng và một ví dụ sửa cụ thể bằng tiếng Việt.
Phát hiện được những gì
Từ lỗ hổng bảo mật nghiêm trọng đến lỗi cú pháp làm trang trắng.
SQL & NoSQL Injection
CWE-89Ghép chuỗi truy vấn, truy vấn thô trong ORM, $wpdb không prepare, SQL động trong stored procedure, $where của MongoDB.
Thực thi lệnh & mã
CWE-78shell_exec, eval, subprocess shell=True, Runtime.exec, exec.Command, Process.Start, system() ghép chuỗi.
XSS & Template Injection
CWE-79echo chưa escape, innerHTML, Html.Raw, HTML() của Shiny, render_template_string, WebView evaluateJavaScript.
Path Traversal & Zip Slip
CWE-22include theo tham số, đọc ghi tệp từ đường dẫn người dùng, giải nén không kiểm tra đường dẫn.
SSRF & Open Redirect
CWE-918Máy chủ gửi request tới URL do người dùng quyết định; chuyển hướng tới địa chỉ không kiểm tra.
Giải tuần tự không an toàn
CWE-502unserialize, pickle, ObjectInputStream, BinaryFormatter, NSKeyedUnarchiver, readRDS từ tệp lạ.
Lộ thông tin bí mật
CWE-798Khoá AWS, Stripe, GitHub, mật khẩu và chuỗi kết nối ghi cứng; token trong UserDefaults / SharedPreferences.
Mật mã yếu
CWE-327MD5 cho mật khẩu, DES / RC4 / ECB, khoá và IV ghi cứng, rand() cho token, tắt xác thực TLS.
Lỗi bộ nhớ C/C++
CWE-120gets, strcpy, sprintf không giới hạn, format string từ biến, double free, malloc thiếu +1.
LDAP / XPath / JNDI / ReDoS
CWE-90Bộ lọc LDAP, biểu thức XPath, tên JNDI lookup và regex dựng từ dữ liệu người dùng.
Sai cấu hình
CWE-16Debug bật, CORS mở, cookie thiếu httpOnly, .env lộ ra web, Android debuggable, iOS tắt ATS, web.config.
Hạ tầng & container (IaC)
CWE-250Dockerfile (:latest, curl|sh, chạy root), docker-compose (privileged, docker.sock), Kubernetes, Terraform (S3 public, SG 0.0.0.0/0), GitHub Actions, nginx.
Thư viện có lỗ hổng (SCA)
CWE-1104Đối chiếu composer.lock, package-lock.json, requirements.txt, go.sum… với OSV.dev để tìm thư viện cũ có CVE đã biết (tuỳ chọn, mặc định tắt).
Lỗi cú pháp & chất lượng
—Tệp PHP không chạy được, JSON hỏng, catch rỗng, unwrap() / try! có thể crash, lỗi Go bị bỏ qua.
Câu hỏi thường gặp
Mã nguồn của tôi có bị gửi đi đâu không?
Không. Toàn bộ việc phân tích mã nguồn diễn ra ngay trên máy chủ đang chạy trang này, và tệp tải lên bị xoá ngay khi quét xong. Ngoại lệ duy nhất là tính năng quét lỗ hổng thư viện (SCA) — nếu bạn bật, nó gửi TÊN và PHIÊN BẢN thư viện (ví dụ "lodash@4.17.11") tới cơ sở dữ liệu OSV.dev để tra cứu CVE. Nó KHÔNG bao giờ gửi mã nguồn, và mặc định đang tắt.
Có cần cài thêm công cụ gì lên máy chủ không?
Không. Bộ quét không gọi công cụ ngoài (semgrep, eslint…) hay bất kỳ lệnh shell nào, nên chạy được cả trên hosting chia sẻ có chặn hàm exec().
Kết quả có chính xác tuyệt đối không?
Không có công cụ phân tích tĩnh nào đạt được điều đó. Mỗi phát hiện đi kèm mức độ tin cậy: "Chắc chắn" gần như luôn đúng, còn "Cần xem lại" là những trường hợp cần bạn đọc mã để tự đánh giá.
Dự án lớn thì quét có bị treo không?
Không. Việc quét được chia thành từng lô nhỏ qua nhiều lượt gọi, nên không bao giờ chạm giới hạn thời gian chạy của máy chủ. Bạn thấy tiến trình nhích dần theo thời gian thực.
Tôi tự thêm luật kiểm tra riêng được không?
Được. Các luật nằm trong thư mục app/Services/Scanner/Rules, mỗi luật khai báo biểu thức chính quy, mức độ nghiêm trọng và phần mô tả. Thêm một luật mới là xong.