PHISHSHIELD

Sơ đồ kiến trúc hệ thống · v1.2.1 · 2026

Luồng phân tích chính
👤 Người dùng nhập URL
🌐 index.html — Frontend SPA
Cloudflare Pages
↓ POST /analyze-url
⚙️ Cloudflare Worker — fetch()
🔒 CORS Check
*.pages.dev · localhost · env.ALLOWED_ORIGIN
⏱ Rate Limit
30 req/min · KV bucket/IP
↓ Validate URL
✅ URL Validation
format · max 2048 · no private IP
🏅 Trusted Domain List
google · facebook · momo · zalopay · vietcombank…
✓ Match → SAFE ngay ✗ Không match ↓
📦 KV Cache Lookup
TTL 3600s — CACHE_STORE
Cache HIT → trả kết quả Cache MISS ↓
🤖 Jina Reader
Scrape nội dung trang
✨ Gemini AI
gemini-2.0-flash · JSON verdict
🔍 RDAP Cloudflare
Domain age lookup
🏷️ Heuristic Scanner
Từ khóa VN bank/ewallet/cờ bạc
↓ Verdict Fusion
⚖️ fuseVerdict()
AI + domain age + heuristic → final verdict + risk score
🛡️ SAFE
risk < 0.3
⚠️ SUSPICIOUS
risk 0.3–0.7
🚨 PHISHING
BANK · EWALLET · SOCIAL · GAMBLING
↓ ctx.waitUntil()
💾 Cache Result (KV)
TTL 3600s
📊 Log Counter (KV)
total_scans · threats_blocked
📤 JSON Response → Frontend render
Chi tiết các thành phần

⚙️ Worker Backend

  • Cloudflare Workers — V8 Edge Runtime
  • Timeout: Page 8s · Intel 4s · AI 13s
  • Sanitize prompt chống injection
  • Validate AI schema response
  • Private IP block (127/10/192.168…)

✨ AI Pipeline

  • Jina Reader scrape → markdown
  • Gemini 2.0 Flash phân tích JSON
  • Verdict: SAFE / SUSPICIOUS / PHISHING
  • Category: BANK / EWALLET / GAMBLING / SOCIAL
  • Fallback nếu AI không trả đúng schema

🏷️ Heuristic VN

  • Bank: vietcombank · mbbank · bidv…
  • E-wallet: momo · zalopay · vnpay…
  • Gambling: sunwin · go88 · tài xỉu…
  • Social: facebook · zalo · telegram
  • Sensitive: OTP · mật khẩu · số thẻ

📦 KV Storage

  • CACHE_STORE — lưu kết quả phân tích
  • COUNTERS — thống kê total/threats
  • Rate limit bucket per IP per minute
  • TTL 90s cho rate-limit key
  • TTL 3600s cho result cache

🗄️ D1 Database Planned

  • known_sites — whitelist/blacklist
  • discovery_queue — auto crawl queue
  • threat_feed_log — import history
  • trust_score per domain
  • report_count cộng đồng

🔐 Bảo mật

  • CORS động: *.pages.dev + env secret
  • Rate limit 30 req/min per IP
  • Prompt injection sanitizer
  • URL scheme block (non-http)
  • Private address block
Người dùng / Frontend
Cloudflare Worker
KV Storage
AI / Scraping
Domain Intelligence
Kết quả SAFE
Cảnh báo / Rate limit
Nguy hiểm PHISHING