How scoring works
URLBouncer uses a multi-factor scoring system to evaluate URL safety. Every URL receives a score from 0-100 and a verdict: Safe, Caution, or Likely Scam.
What URLBouncer checks
URLBouncer analyzes URLs across multiple dimensions to detect phishing, scams, and malicious behavior. We examine the domain structure, brand similarity, page content, certificate age, and DNS patterns to build a comprehensive safety assessment.
What 'Safe', 'Caution', and 'Likely Scam' mean
Signals we look for
When scanning a URL, we check for the following signals. Each signal contributes to the overall safety score:
Wallet connection behavior detected
CriticalThis page contains scripts commonly used to request wallet approvals or transactions.
Ethereum wallet probing detected
CriticalThis page attempts to detect or interact with cryptocurrency wallets in your browser.
Brand lookalike detected
WarningThis domain closely resembles a known brand, which may indicate a phishing attempt.
Suspicious keywords detected
WarningThis URL contains words commonly used in phishing and scam campaigns.
High-risk domain ending
WarningSome top-level domains are frequently abused for phishing and scams.
Very new certificate
WarningThis domain's SSL certificate was issued very recently, which may indicate a newly created scam site.
Excessive subdomain depth
InfoThis URL has an unusually high number of subdomains, which may indicate an attempt to obscure the true domain.
Highly obfuscated code
WarningThe page's JavaScript code is heavily obfuscated, which may hide malicious behavior.
Excessive hidden form inputs
WarningThis page contains many hidden form fields, which may be used to collect sensitive data without your knowledge.
Could not fetch page content
InfoWe couldn't retrieve the page to inspect its scripts. Results may be less certain.
Scoring Factors
Each URL is analyzed across five categories. The final score is a weighted combination of these factors:
Brand Lookalike Detection
30% weightChecks if the domain resembles known brands using Levenshtein distance and homoglyph detection (e.g., "c0inbase" vs "coinbase").
- Exact brand match: 0 suspicion points (legitimate site)
- 1-character difference: 50 suspicion points
- 2-character difference: 30 suspicion points
Domain Heuristics
25% weightAnalyzes the domain structure, TLD, and keywords for suspicious patterns.
- Suspicious TLD (e.g., .top, .xyz, .click): +30 points
- Excessive subdomain depth: +15 points
- Scam keywords (verify, wallet, secure, etc.): +10 per keyword, max +40
HTML Content Analysis
30% weightExamines the webpage content for phishing indicators and suspicious patterns.
- Wallet connect patterns: +40 points
- Ethereum wallet probing: +20 points
- High code obfuscation (>92%): +15 points
- Excessive hidden inputs (>5): +10 points
- Urgency words (urgent, limited time, etc.): +5 per word, max +20
Certificate Age
10% weightChecks SSL certificate age via crt.sh. Newly registered domains are more suspicious.
- Certificate < 1 day old: +30 points
- Certificate < 7 days old: +20 points
- Certificate < 14 days old: +10 points
- Certificate ≥ 14 days old: 0 points
DNS Features
5% weightAnalyzes DNS records for suspicious patterns (currently limited in Cloudflare Workers).
- Multiple IPs in short time: +10 points
- Recent DNS changes: +15 points
Score Calculation
The system calculates a suspicion score (0-100, higher = more suspicious) by combining all factors with their weights:
The safety score is then calculated as: safety = 100 - suspicion
Exact brand matches with no red flags receive a safety score of 90-100.
Critical Red Flags
Certain factors automatically prevent a "Safe" verdict, regardless of the calculated score:
- Suspicious TLD — Domains using known risky TLDs (e.g., .top, .xyz) can never be marked Safe
- Brand lookalike + scam keywords — Combination of brand similarity and suspicious keywords
- Wallet connect patterns — Detection of cryptocurrency wallet connection attempts
- High obfuscation — Code obfuscation ratio above 92%
AI Enhancement
For scores in the borderline range (typically 40-70), URLBouncer may use an AI language model to analyze the page content and provide more nuanced reasoning. The AI can:
- Analyze page text for phishing indicators
- Provide context-aware explanations
- Detect subtle social engineering patterns
Note: Critical red flags still override AI recommendations to ensure safety.
Limitations
While URLBouncer uses multiple signals to assess URL safety, there are some limitations to be aware of:
- HTML fetch failures — Some sites may block automated access, preventing us from analyzing page content. In these cases, we rely on domain and certificate signals only.
- New domains — Very new domains may not have enough historical data for a complete assessment. Certificate age helps, but legitimate new sites may initially score lower.
- Content changes — Scam sites may change their content after being flagged. Re-scanning may show different results.
- Cache window — Results are cached for performance. Recent changes to a site may not be immediately reflected.
- False positives/negatives — No automated system is perfect. If you see an incorrect verdict, please report it.
Privacy
URLBouncer is designed with privacy in mind:
- No login required — You can use URLBouncer without creating an account or providing personal information.
- No tracking pixels from sponsors — Sponsored results are clearly labeled and do not include tracking pixels or cookies.
- No raw URL storage — By default, we only store URL hashes and scan results, not the full URLs. This protects your privacy while allowing us to improve our detection.
- Minimal analytics — We use basic analytics for service improvement and fraud prevention only.
See something wrong?
If you believe a URL was incorrectly flagged (false positive) or missed (false negative), please report it. Your feedback helps us improve our detection accuracy.
Report FP/FN →