{"id":"crawlproof.com/crawlproof","name":"crawlproof","commands":["crawlproof"],"examples":[{"run":"crawlproof dashboard","does":"Open live ROI, traffic, ads, money and spend screens"},{"run":"crawlproof stats <site>","does":"Print a site's sources, referrers and top pages"},{"run":"crawlproof ad <url> --draft","does":"Read a page and draft an ad campaign for it"},{"run":"crawlproof ads trends","does":"Show which topics are trending for ad targeting"}],"description":"Terminal dashboard showing CrawlProof traffic, ad delivery and CoinPay revenue for a fleet of sites.","homepage":"https://crawlproof.com","repository":"https://github.com/profullstack/crawlproof.com","license":"MIT","agentic":false,"latest_version":"0.5.0","vendor":"Profullstack","install":"curl -fsSL https://crawlproof.com/install.sh | sh","publisher":"profullstack","npm":"@profullstack/crawlproof","w3bs":"w3bs install crawlproof.com/crawlproof","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":1479,"summary":{"critical":0,"high":2,"medium":30,"low":18,"info":0},"malware":0,"truncated":false,"version":"0.5.0","sources":{"installer":"https://crawlproof.com/install.sh","installerSha256":"22dc281a35a43e9dbbdde233afc45beb99d6e2891d7f662f725645b7629f5fcb","repository":"github.com/profullstack/crawlproof.com","commit":"bb375854a81fa6af0b4bab476c61c0414e0946c9"},"notes":[],"scannedAt":"2026-11-05T12:03:34.878Z","findings":[{"ruleId":"tls-verification-disabled","title":"TLS certificate verification disabled","severity":"high","category":"code","cwe":"CWE-295","file":"source/lib/onion.ts","line":48,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"high","category":"secret","cwe":"CWE-798","file":"source/lib/sp/platforms/facebook.ts","line":32,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(app)/dashboard/admin/email-broadcast/EmailBroadcastForm.tsx","line":125,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(app)/dashboard/projects/[id]/autoblog/articles/[articleId]/page.tsx","line":214,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(marketing)/blog/[slug]/page.tsx","line":74,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(marketing)/blog/[slug]/page.tsx","line":102,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(marketing)/recent/page.tsx","line":177,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/(marketing)/recent/page.tsx","line":181,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/c/[project]/[slug]/page.tsx","line":76,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/c/[project]/page.tsx","line":58,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/careers.js/route.ts","line":228,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/careers.js/route.ts","line":285,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/layout.tsx","line":129,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/app/login/form.tsx","line":40,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/r/[token]/page.tsx","line":164,"malware":false},{"ruleId":"js-open-redirect","title":"redirect to a non-constant destination","severity":"medium","category":"code","cwe":"CWE-601","file":"source/app/signup/form.tsx","line":65,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/app/surveys/[slug]/invite/page.tsx","line":68,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/components/json-ld.tsx","line":8,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/components/pit-footer.tsx","line":17,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/components/report/markdown-view.tsx","line":16,"malware":false},{"ruleId":"js-unescaped-html-sink","title":"unescaped HTML rendering","severity":"medium","category":"code","cwe":"CWE-79","file":"source/lib/careers/page-templates.ts","line":198,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/lib/crawl-limits.ts","line":67,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/lib/emailMarkdown.ts","line":41,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/lib/emailMarkdown.ts","line":324,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/lib/lx/articleGen.ts","line":100,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/lib/tracker/agent-gate.ts","line":61,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"medium","category":"code","cwe":"CWE-377","file":"source/ops/selfhost/server/setup-supabase.sh","line":218,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/detect-slot-themes.ts","line":31,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/purge-constructed-keywords.ts","line":163,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/scripts/purge-offniche-keywords.ts","line":124,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/scripts/test-crawl-limits.mjs","line":14,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"medium","category":"code","cwe":"CWE-95","file":"source/scripts/test-crawl-limits.mjs","line":24,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/app/(marketing)/docs/autoblog-webhook/page.tsx","line":156,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/lib/sealed/migrate.ts","line":38,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/lib/sp/platforms/linkedin.ts","line":25,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/tests/ads-generator-agent.test.ts","line":160,"malware":false},{"ruleId":"secret-generic-api-key","title":"Generic API Key","severity":"low","category":"secret","cwe":"CWE-798","file":"source/tests/ads-generator-agent.test.ts","line":187,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/careers-page-templates.test.ts","line":21,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/careers-widget-script.test.ts","line":19,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/careers-widget-script.test.ts","line":69,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ad-visitor-id.test.ts","line":51,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ad-visitor-id.test.ts","line":52,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":20,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":24,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":25,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":26,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":31,"malware":false},{"ruleId":"js-dynamic-code-execution","title":"dynamic code execution","severity":"low","category":"code","cwe":"CWE-95","file":"source/tests/contract/ads-click-cooldown-redis.test.ts","line":35,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/tests/contract/posthog-integration.test.ts","line":13,"malware":false},{"ruleId":"secret-generic-credential","title":"Hardcoded Credential","severity":"low","category":"secret","cwe":"CWE-798","file":"source/tests/lead-campaign.test.ts","line":16,"malware":false}]}}