Skip to content

Find exposed .env, .git and backup files scanners probe for ​

Log Analyzer > Security shows which sensitive files scanners request on your site and how your site answers them. EdgeComet flags every probed path that answered with real content, such as an .env file, a .git folder or a debug log. Also called vulnerability scanner traffic or path probing.

The scanners EdgeComet sees send a bot user agent, often posing as Googlebot, GPTBot or another known bot. EdgeComet records each request as it serves it. The page works from that live traffic, with no log files and no scan of your own.

A 404 is the healthy answer. A 200 that carries the file is a leak, and the page lists it first.

The Security page for edgecomet.com over 30 days. Four stat cards: Probe Requests 3.4K on 289 paths, down 52.2%; Scanner IPs 36, with the top IP blurred and 35 more; Turned Away 99.8%, 2,520 blocked, 786 answered 404; and Exposed Files 0 of 289 probed paths. Below, the Probe Requests Over Time chart stacks Secrets & Keys, Source Control, Config & Backups, Debug & Server Info, File-Read Exploits and Admin & Login per day, peaking near 490 requests on Oct 17, mostly Secrets & Keys

What the report shows ​

The Security page counts the period's probe requests, lists any exposed file, splits probes by outcome and category, and lists the paths and IPs behind them. It has a period and no segment filter.

What is a probe request? ​

A probe request is a request for a path on EdgeComet's list of paths scanners use to find files and endpoints that must never be public. The list covers seven categories. EdgeComet matches the path in lowercase and decoded, so /admin%2f.env counts as /admin/.env, and a trailing slash makes no difference.

A request for any other path is also a probe request when its query string carries a scanner payload, such as /userfiles?path=../../.env or /index.php?-d+allow_url_include=1.

The page counts probe requests from every bot except verified search and AI bots, because a verified crawler that fetches such a path usually follows a link on your site. Requests that fail IP verification stay in: scanners fake bot identities. Pre-cache requests are not counted.

A probe request is not the same as a fan-out probe, which is a search keyword.

How many probes reach your site? ​

CardWhat it shows
Probe RequestsProbe requests in the period, with the change from the previous period. The footer counts the distinct paths, and View opens the requests in Data Explorer
Scanner IPsDistinct IP addresses that sent probe requests, with the change. The footer names the IP that sent the most
Turned AwayThe share of probe requests answered 404, 410, another 4xx or a redirect. It never rounds up to 100% while a probe got through
Exposed FilesProbed paths that answered with content. The value turns red above zero, and the footer dates the oldest exposure

The Turned Away footer names its two largest outcomes, such as "2,520 blocked, 786 answered 404". Under 90%, it names the largest outcome that got through instead, such as "4,788 got the same page".

Which files are exposed? ​

An exposed file is a probed path that answered 200 with content in the period, other than your site's catch-all page, a login page or an image. Exposed Files lists each one, most serious first, and appears above the charts only when at least one path is exposed.

The Exposed Files card with 5 files. /.env: P0, Secrets & Keys, File, not a page, 200 text/plain, 1.4 KB, exposed since Aug 2, 2026, last fetched Oct 24, 2026, 41 fetches. /wp-content/debug.log: P0, Debug & Server Info, File, not a page, 200 application/octet-stream, 44.1 MB, since Jun 23, 2026, 12 fetches. /.git/config: P0, Source Control, 200 text/plain, 312 B, 9 fetches. /backup.sql.gz: P0, Config & Backups, 200 application/gzip, 18.6 MB, 3 fetches. /info.php: P1, Debug & Server Info, Unique page, 200 text/html, 85.3 KB, 7 fetches

  • Priority: P0 "Can leak credentials or data" for secrets and keys, source control, config and backups, file-read and code-execution exploits, any debug log file and a heap dump. P1 "Leaks server configuration" for other debug and server info pages, such as a phpinfo() page.
  • Signal: File, not a page when the answer was not HTML, such as an .env file or a log. Unique page when it was HTML unlike your site's catch-all page.
  • Response and Size: the status code and content type of the latest answer, and the largest size served.
  • Exposed Since: the first 200 for the path in all stored data, not only the period.
  • Last Fetched and Fetches: the latest request that got the content, and how many did in the period. The Fetches number opens those requests in Data Explorer.

EdgeComet decides from the status code, content type, title and size of each answer. A Unique page row can be an ordinary page that happens to sit at that path: open the URL to confirm.

What does each probe target? ​

Each probe path falls into one category, by what it targets. Probe Categories shows each category's share of probe requests, and Probe Requests Over Time stacks the categories per time bucket.

CategoryWhat scanners look forExamples
Secrets & KeysEnvironment files, cloud credentials, private keys and AI assistant configs/.env, /sendgrid.env, /.aws/credentials, /id_rsa, /client_secrets.json, /.claude/settings.local.json
Source ControlRepository folders and files that expose source code and its history/.git/config, /.github/workflows/deploy.yml, /.svn/, /.hg/
Config & BackupsConfig files, database dumps and backup copies/docker-compose.yml, /settings.py, /wrangler.toml, /wp-config.php.bak, /backup.sql.gz, /www.zip
Debug & Server InfoDebug pages, status pages and logs/phpinfo.php, /actuator/env, /_ignition/health-check, /elmah.axd, /server-status, /wp-content/debug.log
File-Read ExploitsPath traversal and file-read tricks/../../etc/passwd, /@fs/proc/self/environ, /api/fs/read, /userfiles?path=../../.env
Code-Execution ExploitsEndpoints that run code an attacker sends, and known web shells/cgi-bin/php-cgi, /vendor/phpunit/.../eval-stdin.php, /api/v1/validate/code, /wso.php, a .php file under /wp-content/uploads/
Admin & LoginAdmin panels and login pages/wp-login.php, /wp-admin/, /xmlrpc.php, /phpmyadmin, /manager/html

A path that matches no listed name but has a segment starting with a dot, such as /.pgpass, counts as Config & Backups, except paths under /.well-known/. So does a backup archive named after your site, such as /example.com.zip.

A probe by its query string alone, such as /document.php?file=../conf/conf.php, counts under the category of its payload: File-Read Exploits for a path to read, Code-Execution Exploits for code to run, Secrets & Keys for a cloud metadata address and Debug & Server Info for phpinfo=.

The chart's time buckets are in UTC, and their width follows the period. Click a bar or a category count to open those requests in Data Explorer.

How does your site answer probes? ​

Every probe request gets one outcome, from the status code and the content of the answer. Probe Outcomes shows each outcome's share, worst first. Most counts open the requests in Data Explorer.

The Probe Outcomes and Probe Categories cards for edgecomet.com over 30 days. Probe Outcomes: Server Error (5xx) 0.1%, 5 requests; Redirected (3xx) 3.7%, 127 requests; Blocked (4xx) 73.3%, 2,520 requests; Not Found (404, 410) 22.9%, 786 requests. Probe Categories: Secrets & Keys 68.7%, 2,361 requests; File-Read Exploits 12.5%; Config & Backups 11.8%; Debug & Server Info 4.3%; Admin & Login 1.6%; Source Control 1.1%, 39 requests

OutcomeAnswerWhat it means
Exposed2xx with contentThe path served a file or page. See Which files are exposed?
Same Page2xx with the catch-all page, an ordinary page to a query string payload, or an imageYour site answers unknown paths with one page, the page ignored the payload, or an image came back. Nothing leaked
Server Error5xx or no responseThe request failed on your server or got no answer
Login Reachable2xx on an admin or login pathA login page answers, such as /wp-login.php
RedirectedAny 3xxThe probe was sent elsewhere
Blocked401, 403, 429 or another 4xxYour server, firewall or a URL rule refused the probe
Not Found404 or 410The healthy answer

Turned Away on the stat card is Redirected, Blocked and Not Found together.

Why do probes count as Same Page? ​

A catch-all page is the one page your site serves with a 200 for any path it does not know, such as a single-page app shell or a bot challenge page. EdgeComet recognizes it when several probe paths get the same page, by title and size, and counts those answers as Same Page instead of Exposed.

When EdgeComet finds one, the page opens with a notice that quotes the page title: "Every unknown path on this site answers 200 with the same page ("One moment, please..."), so these probes count as Same Page, not Exposed."

The catch-all notice above the stat cards on a site that serves a challenge page: "Every unknown path on this site answers 200 with the same page ("One moment, please..."), so these probes count as Same Page, not Exposed." The cards show Probe Requests 28.5K on 287 paths, Scanner IPs 214, Turned Away 94.7% with 21,940 blocked and 5,090 answered 404, and Exposed Files 0 of 287 probed paths

Which paths do scanners probe? ​

Probed Paths lists every probed path with its category, the worst answer it got in the period, its requests, the distinct IPs that asked and the last request.

The Probed Paths card for edgecomet.com with 289 paths, sorted by Requests. The top rows: /__vite_rsc_findsourcemapurl, File-Read Exploits, 301 Redirected, 146 requests from 16 IPs; /.env, Secrets & Keys, 403 Blocked, 111 requests from 18 IPs; /.env.local, /@fs/.env and /.env.production, all 403 Blocked; /api/fs/read, 404 Not Found; /wp-admin/, Admin & Login, 403 Blocked. Every row was last seen Oct 25

Response shows the status code and the outcome, with Exposed and Same Page as colored badges. Sort by Path, Requests, Unique IPs or Last Seen. The Requests number opens that path's requests in Data Explorer.

Who is probing? ​

Scanner IPs lists the IP addresses that sent probe requests, most active first.

The Scanner IPs card for edgecomet.com with 36 IPs, addresses blurred. Each row claims many bots, such as OpenAI Search, Amazonbot and 14 more, or Meta Agent, Googlebot Desktop and 21 more. Every row reads Fake under Validation. Requests run from 296 down to 197, Paths range from 130 to 244, Other Sites from 2 to 11, and Last Seen dates from Oct 1 to Oct 25

  • Claimed Identity: the bots named in the user agents the IP sent. One scanner often rotates through many.
  • Validation: Fake when any request from the IP failed the claimed bot's IP verification. Unverified otherwise: the claimed bot has no published IP list, or the user agent names no known bot.
  • Requests, Paths and Last Seen: probe requests from the IP, the distinct paths it tried, and its latest request.
  • Other Sites: how many other EdgeComet sites the same IP probed in the period. It shows a count, never which sites.

The icon next to an IP opens a WHOIS lookup of the network owner. Sort by Requests, Paths or Last Seen.

How to read it ​

Read the Security page by what got through, then by who sent it:

  • Exposed Files is above zero. Treat every P0 file as leaked, and fix it the same day.
  • Turned Away is under 100%. Check which outcome got through. Same Page leaks nothing, Login Reachable is expected only for software you run, and Exposed needs a fix.
  • Same Page is large. Your site answers unknown URLs with 200. Nothing leaked, but a 200 for a missing page is what Google calls a soft 404.
  • Server Error appears. A probe path made your server fail. Find the path in Probed Paths.
  • One IP claims many bots and reads Fake. That is a scanner rotating user agents, not a real crawler.
  • Other Sites is high. The IP scans many sites, not only yours.
  • No probe requests in this period. EdgeComet saw none, which does not mean nobody probed your site. EdgeComet records the requests your CDN routes to it, and a scanner with a browser user agent goes straight to your origin. See Request-path capture.

How to fix an exposed file ​

Fix an exposed file at your origin first, then make probes for it get a 404:

  1. Remove the file from your web root, or deny the path in your web server or CDN.
  2. Rotate every secret the file held, such as API keys, database passwords and tokens. A file that answered a scanner with a 200 counts as leaked.
  3. Request the path yourself and check that it answers 404 or 403. New probes then show as Not Found or Blocked, and the row leaves Exposed Files once the period no longer includes an exposed fetch.

Answer probe paths at the edge ​

To answer common probe paths before they reach your server, add a URL rule under Configuration > System Settings > URL Rules. Use Wildcard patterns such as /.env*, /.git/* and *.sql, and the action Not Found (404) or Block (403).

Wildcards ignore case, and * matches any characters, none included: /.env* covers /.env and /.env.local. See Add a URL rule.

Pick only paths your site never serves on purpose. A URL rule applies to the requests your CDN routes to EdgeComet: direct requests to your origin still reach the file, which is why the origin fix comes first.

What to do next ​

Set the alert, inspect the requests, and check the rest of your bad bot traffic:

  • Get alerted. The Sensitive file exposed alert warns you when a probed file answers with content. It checks once a day and counts files, not pages. See Sensitive file exposed.
  • See every request. Most counts on the page open the matching requests in Data Explorer > Bot log, with filters such as Probe category and Response class set. See Data Explorer Bot log.
  • Ask about it. Ask in the header starts with "Is any sensitive file exposed?", "Which paths do scanners probe?" and "Where do probes come from?".
  • Check fake and unknown bots. Log Analyzer > Bad Bots covers fake Googlebot traffic and unknown crawlers. See Detect fake Googlebot and other bad bot traffic.

How this compares with server logs and vulnerability scanners ​

The Security page shows what real scanners asked your site for and what your site answered, from live traffic:

  • Server log analysis: finding probes in access logs takes your own path patterns, and a 200 in a log line cannot tell a leaked file from a catch-all page. The Security page classifies every probe and its answer, recognizes your catch-all page, and dates each exposure.
  • Vulnerability scanners: a scanner tests your site from outside, on a schedule and with its own list. The Security page shows which paths scanners requested between those runs, which ones answered, and since when.
  • Across sites: Other Sites shows when the same IP probed other EdgeComet sites, which your own logs cannot show.

See How EdgeComet collects data: no log files, no crawler.

Where to find it ​

In the dashboard: Log Analyzer > Security. Log Analyzer > Bad Bots covers fake and unwanted bot traffic.