Hans StudyNetwork and security consultant

State of cyber hygiene · Windsor-Essex · October 2026

State of cyber hygiene in Windsor-Essex

722 small businesses in Windsor-Essex publish a website on a domain they own. Over the last week of October 2026 I checked every one of those domains the way a stranger on the internet could: public DNS records, one visit to the home page over HTTP and one over HTTPS, the response headers, and the certificate. No logins, no scanning. Nothing past the home page was touched, and this is what the public footprint of Windsor-Essex's small-business economy looks like.

722 domainsPassive checks onlyCollected October 27, 2026No business named
18+Exposed to the PHP takeover bugon an unpatched or unsupported PHP version; a floor, since most sites hide the version. The bug was disclosed last week and is being exploited now
722Businesses checkedWindsor (336), Tecumseh (91), Kingsville (62), Leamington (54), Amherstburg (52), Harrow (33)
86%Can be impersonated by email492 of 575 have no enforced DMARC, so mail can be forged as them
62Running outdated software29 behind on WordPress, 33 on a code library retired in 2016
87%HTTPS set up properly34 serve a broken or missing certificate
36Dead or parked domains27 no longer work, 9 show a placeholder; an abandoned domain can be re-registered by anyone
00 · Headline findingsfor press

The headline findings

Every number here comes from the public-facing side, public DNS records and a single visit to each home page, collected October 27, 2026. No business is named. This is not name and shame. It is meant to draw attention to things we do not normally pay attention to. The sections that follow break each figure down by sector, town, and platform, and the method note at the end explains exactly what was checked, and what was not.

  1. A critical flaw in PHP, the software that runs most of the web, was disclosed on October 21, 2026 and is already being exploited. It hands an attacker control of the server with no password needed, and the US cyber agency ordered federal systems to patch it by October 29. At least 18 small-business sites in Windsor-Essex are advertising a PHP version that is either unpatched against this bug or on a release line that will never get a fix. That is a floor, not a ceiling: most sites hide their version, so the real number is higher.
  2. 722 small businesses in Windsor-Essex with a website of their own were checked from the outside for this report, the way any visitor could. Local firms, shops, trades, clinics, and contractors, not chains or government.
  3. 492 of them (86%) can be impersonated in email. Without an enforced DMARC record, a scammer can send an invoice or a quote that looks like it came from the business, and the customer's mail provider has nothing to stop it. Only 83 (14%) have that protection turned on.
  4. 231 of these sites run WordPress. Of the 122 that publish their version number, 29 are behind on security updates, and 33 sites across the sample still load a code library that stopped getting fixes in 2016. 92 of them take card payments through WooCommerce on that same software.
  5. 585 sites (87%) have HTTPS set up properly. The other 90 reachable sites do not fully, and 34 serve a broken, expired, or missing certificate, so a customer typing in a card number or a password cannot be sure who is receiving it.
  6. 99 business domains have no SPF record at all, the most basic of the email checks. Anyone, anywhere, can send mail as those businesses with nothing to flag it as fake.
  7. 27 domains these businesses are still listed under no longer work, and 9 more show a parking or placeholder page. An abandoned domain can be re-registered by anyone, who then receives the email meant for that business.
  8. Scored across every outside check, the typical business in Windsor-Essex lands at 67 out of 100. 112 earned an A. 25 failed outright.
01 · Email authentication575 mail domains

Most domains can be impersonated by email

575 of the 722 domains accept email (they publish an MX record). Of those, 476 (83%) publish an SPF record. 99 don't. Without SPF, any mail server on earth can send as that business and the receiving side has nothing to check it against. DMARC, the record that tells receivers what to do with mail that fails the checks, exists on 276 domains (48%), but only 83 (14%) set a policy of quarantine or reject. The other 193 sit at p=none, which is monitoring mode... the record is there, it just doesn't do anything to a forged message.

83 have neither SPF nor DMARC. 53 (9%) have the full set that mail providers now expect from senders: SPF, a DKIM signature at a standard selector, and an enforcing DMARC policy. Those are the domains whose invoices land in the inbox when Gmail and Microsoft tighten their rules again.

The most common mail platform here is Google Workspace (176 domains). Platform matters less than configuration. Tenants on Microsoft 365 in this sample enforce DMARC 20% of the time and Google Workspace tenants 10%; the defaults on both are p=none or nothing at all, so the numbers reflect whoever set the tenant up, not the vendor.

Why this one matters most

Invoice fraud against small businesses almost always starts with a message that appears to come from the business or from one of its suppliers. SPF, DKIM, and an enforcing DMARC policy are the 3 DNS records that let the big mail providers drop those messages before a customer sees them. They cost nothing but time.

EM-01

Of 575 domains that receive mail

  • SPF published476 · 83%
  • SPF ends in -all182 · 32%
  • DMARC published276 · 48%
  • DMARC enforced83 · 14%
  • DMARC reporting (rua)128 · 22%
  • DKIM at a known selector209 · 36%
  • SPF + DKIM + enforced DMARC53 · 9%
  • Neither SPF nor DMARC83 · 14%

MTA-STS 3 · TLS-RPT 2 · BIMI 3 · multiple SPF records 6 · SPF over 10 lookups 0

EM-02

DMARC policy

  • Reject30 · 5%
  • Quarantine53 · 9%
  • None (monitor only)193 · 34%
  • No record299 · 52%
  • Invalid0 · 0%
EM-03

Google Workspace against Microsoft 365

Of mail domains on eachMicrosoft 365Google WorkspaceFiltered (Proofpoint, Mimecast, etc.)Host-bundled
Domains1311767131
SPF present98%68%93%81%
SPF ends in -all88%6%37%3%
DMARC present53%45%68%58%
DMARC enforced20%10%27%6%
DMARC p=none34%35%41%52%
DKIM found22%24%55%13%
SPF + DKIM + enforced DMARC12%5%17%0%
Mean score70637063

DKIM is checked at each platform's default selectors (google; selector1 and selector2). A tenant signing at a custom selector shows as not found.

All mail platforms

PlatformDomainsEnforcep=noneNo DMARC
Google Workspace17610%35%55%
Other (small host or self-run)14011%26%62%
Microsoft 36513120%34%47%
Mail filtering or relay service7127%41%32%
Hosting-bundled email316%52%42%
GoDaddy email120%0%100%
Rackspace50%40%60%
Zoho520%40%40%
Forwarding or transactional only250%0%50%
02 · Website configuration675 HTTPS sites

Nearly every site has HTTPS. Fewer than half use it fully

675 sites answer over HTTPS. 661 of those presented a certificate that validates cleanly; 14 did not (expired, issued for a different hostname, self-signed, or an incomplete chain), and 20 sites answer on plain HTTP only. 589 (87%) redirect a plain-HTTP visitor to the encrypted site. HSTS, the header that keeps browsers on HTTPS after the first visit, is set on 328 (49%).

Most negotiated TLS 1.3 (635) or 1.2 (40) with a modern client, which is the default on current hosting. 0 servers (0% of the 675 that completed the test) still accept a TLS 1.1 handshake. Browsers dropped it in 2020. 307 sites (46%) send none of the 4 basic browser security headers (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy). 86 (13%) announce their web server or PHP version in the response headers; 15 of the 46 that name a PHP version are on a release that no longer gets security fixes (anything before PHP 8.2 as of October 2026).

WB-01

Of 675 sites answering on HTTPS

  • Certificate validates661 · 98%
  • HTTP redirects to HTTPS589 · 87%
  • HSTS header328 · 49%
  • HSTS max-age 1 year+172 · 25%
  • Refuses TLS 1.1675 · 100%
  • X-Content-Type-Options325 · 48%
  • X-Frame-Options277 · 41%
  • Referrer-Policy165 · 24%
  • Content-Security-Policy154 · 23%
  • Permissions-Policy136 · 20%
  • Behind Cloudflare329 · 49%
PHP2Shell, 6 days in

On October 21, 2026 the PHP project shipped emergency releases for 2 unauthenticated remote code execution bugs, CVE-2026-109618 and CVE-2026-109619, rated 9.2 and reachable before any application code runs on Apache mod_php. CISA added both to its Known Exploited Vulnerabilities list on October 26; Amazon saw attempts against its honeypots 4 days before the disclosure. Fixed releases are 8.2.35, 8.3.36, 8.4.27, and 8.5.12. PHP 8.1 and older got no release. In Windsor-Essex, 46 sites announce their PHP version in a response header: 28 already show a fixed build, 3 show a supported branch below the fix, and 15 run a branch with no release at all, mostly 7.4.33 and 8.1.34. A version string can lag a distribution backport, so "below fix" means "cannot be ruled out from the outside", and the far larger group of sites that hide the version are unknown either way.

WB-02

Certificate problems

  • self-signed5 · 15%
  • hostname mismatch4 · 12%
  • expired4 · 12%
  • untrusted chain1 · 3%
  • HTTP only, no HTTPS20 · 59%

Certificates past their expiry date as served: 9

WB-03

Certificate issuers

  • Let's Encrypt412 · 61%
  • Google Trust Services178 · 26%
  • Sectigo29 · 4%
  • GoDaddy22 · 3%
  • Amazon11 · 2%
  • DigiCert9 · 1%
WB-04

PHP versions announced

  • PHP 8.4.2715 · 33%
  • PHP 8.3.367 · 15%
  • PHP 7.4.336 · 13%
  • PHP 8.2.354 · 9%
  • PHP 8.0.303 · 7%
  • PHP 8.5.122 · 4%
  • PHP 8.5.112 · 4%
  • PHP 5.6.401 · 2%
  • PHP 7.2.341 · 2%
  • PHP 5.3.101 · 2%

Fixed for PHP2Shell: 8.2.35, 8.3.36, 8.4.27, 8.5.12 · no release for 8.1 and older

Web server as announced

  • Cloudflare328 · 49%
  • nginx103 · 15%
  • Apache95 · 14%
  • Squarespace35 · 5%
  • Not disclosed35 · 5%

Version string exposed: 86 · X-Powered-By PHP: 46 · PHP 8.4.27 (15), 8.3.36 (7), 7.4.33 (6), 8.2.35 (4)

03 · Platforms and CMS231 WordPress

WordPress carries the region, and tells you its version

231 of the 675 reachable sites run WordPress. That's 34%. 122 of them print the exact WordPress version in the page source. 93 are on a supported branch (7.1.3 or 7.0.7 at the time of the check) and 29 are behind it. On its own, a version string is a shopping list for anyone matching known exploits to targets, and hiding it is a one-line change. Loading every site in a real browser cut the unidentified group to 154 by resolving the JavaScript-rendered builders the plain fetch could not read.

79 WordPress sites load Elementor and 92 run WooCommerce, so card data and customer accounts sit on the same install as the brochure pages. 33 sites still ship jQuery 1.x. That library line went end-of-life in 2016. The second-largest group after WordPress is hosted builders (Wix, Squarespace, Shopify, GoDaddy, Duda, Webflow), where the vendor patches the platform; those sites score better on headers and TLS for no effort on the owner's part, and worse on the things the owner still controls, like DMARC.

Reading the plugin list

Plugin names below come from asset paths on the home page, so they undercount anything that doesn't load on the front page. Counts are how many sites load each plugin, not how many are out of date; that can't be read from the outside without probing, which this survey doesn't do.

PL-01

Platform split, 675 sites

  • WordPress231 · 34%
  • Custom / unidentified155 · 23%
  • Wix85 · 13%
  • Shopify65 · 10%
  • Squarespace38 · 6%
  • Weebly37 · 5%
  • Static / JS framework15 · 2%
  • GoDaddy Website Builder13 · 2%
  • Webflow9 · 1%
  • Duda7 · 1%
PL-02

WordPress versions seen

  • WordPress 7.1.x85 · 70%
  • WordPress 7.0.x13 · 11%
  • WordPress 6.9.x6 · 5%
  • WordPress 6.7.x4 · 3%
  • WordPress 6.8.x3 · 2%
  • WordPress 6.6.x2 · 2%
  • WordPress 6.4.x2 · 2%
  • WordPress 6.5.x2 · 2%

Version visible 122 of 231 · current 7.1.3: 82 · supported branch: 93 · behind: 29

PL-03

Most-loaded WordPress plugins

  • contact-form-765 · 28%
  • elementor65 · 28%
  • woocommerce57 · 25%
  • revslider50 · 22%
  • elementor-pro35 · 15%
  • js_composer31 · 13%
  • instagram-feed26 · 11%
  • the-events-calendar19 · 8%
  • google-analytics-for-wordpress17 · 7%
  • gravityforms17 · 7%
  • essential-addons-for-elementor-lite15 · 6%
  • formidable15 · 6%
PL-04

Front-end markers

  • Elementor79 · 12%
  • WooCommerce92 · 14%
  • jQuery 1.x (EOL)33 · 5%
  • Any jQuery version visible266 · 39%
  • Generator tag present278 · 41%
  • Mixed content on page27 · 4%

Median plugins visible per WordPress site: 5

04 · Hosting, CDN, and WAF675 sites

Where the sites live, and what stands in front of them

329 of the 675 reachable sites (49%) answer through Cloudflare, which means the origin server is hidden and the free tier of a web application firewall is at least available to them. Counting Cloudflare, Sucuri, Imperva, Akamai, AWS CloudFront and WAF, Azure Front Door, and Fastly together, 351 sites (52%) have some edge service in front of them. The rest answer straight from the host. For 157 WordPress sites that means the login page, the XML-RPC endpoint, and the REST API are a direct hop from the internet with nothing rate-limiting them.

345 sites show their serving network. 29% of those are served from Canada and 67% from the United States, mostly Amazon and Google plus the big American shared hosts. 191 sites share one of 7 addresses that each carry 10 or more businesses from this sample, which is normal for shared hosting and worth knowing when one of them is compromised. 304 sites negotiate HTTP/3, 608 HTTP/2, and 67 are still on HTTP/1.1 only; 183 domains (25%) have an IPv6 address.

Reading the hosting table

Hosting is identified from the network that announces the serving IP address (Team Cymru's ASN data) and reverse DNS, nothing else. A site behind Cloudflare is listed as Cloudflare because its origin is not visible. Wix, Squarespace, Shopify, and Webflow sit partly on Amazon and Google networks and partly on their own, so the platform counts in section 03 and the network counts here differ.

HS-01

Serving network

  • Cloudflare (origin hidden)330 · 49%
  • Amazon Web Services52 · 8%
  • Google Cloud43 · 6%
  • Other (named host)40 · 6%
  • Squarespace35 · 5%
  • DigitalOcean30 · 4%
  • Newfold (Bluehost, HostGator)22 · 3%
  • OVH20 · 3%
  • GoDaddy19 · 3%
  • Microsoft Azure11 · 2%
  • HostPapa9 · 1%
  • Akamai / Linode8 · 1%
  • IONOS8 · 1%
  • Hostinger6 · 1%
HS-02

Edge, CDN, and WAF signatures

  • Cloudflare329 · 49%
  • Wix platform46 · 7%
  • Squarespace platform35 · 5%
  • AWS CloudFront10 · 1%
  • Google Cloud LB9 · 1%
  • Azure Front Door7 · 1%
  • Akamai4 · 1%
  • Webflow platform3 · 0%
  • Sucuri2 · 0%
  • GoDaddy builder2 · 0%

Signatures come from response headers and cookies. Wordfence and other WordPress security plugins leave no front-page marker, so they are not counted either way.

HS-03

Country of the serving network

  • US560 · 83%
  • CA99 · 15%
  • DE6 · 1%
  • LT4 · 1%
  • GB3 · 0%
  • AT1 · 0%

Cloudflare and other US-registered networks front 330 sites whose origin may be anywhere.

HS-04

Protocol and transport

  • HTTP/3304 · 45%
  • HTTP/2608 · 90%
  • HTTP/1.1 only67 · 10%
  • IPv6 address183 · 27%
  • HSTS preload-ready51 · 8%
  • 90-day certificates (automated)605 · 90%
  • Longer certificates (manual renewal)56 · 8%
  • security.txt published2 · 0%
HS-05

What the page loads from other people

  • Runs Google Analytics288 · 45%
  • Runs the Meta pixel110 · 17%
  • Any third-party tracker311 · 49%
  • No tracker at all328 · 51%
  • Pulls from 20+ outside origins37 · 6%
  • Self-contained (own domain only)73 · 11%

Rendered in a headless browser. Median 6 third-party origins per site, up to 52. Trackers and outside origins are a privacy and supply-chain exposure: each one sees the visitor and can change what runs on the page.

HS-06

Tracker types seen

  • Google Analytics288 · 45%
  • Meta Pixel110 · 17%
  • Google Ads53 · 8%
  • Microsoft Clarity11 · 2%
  • Bing/UET10 · 2%
  • LinkedIn Insight9 · 1%
  • TikTok Pixel7 · 1%
  • Pinterest Tag6 · 1%
05 · DNS and domains722 domains

DNS is where most of the easy wins sit

23 domains (3%) are DNSSEC-signed, and 8 publish a CAA record limiting which authorities can issue their certificates. 27 domains in the directories no longer resolve or don't answer at all, and 9 show a parking or placeholder page; those are mostly businesses that let a domain lapse while directories still list it, which is its own risk when someone else registers it and starts receiving their mail.

DN-01

DNS hosting

  • GoDaddy162 · 22%
  • Other (small host or registrar)125 · 17%
  • Cloudflare105 · 15%
  • Registrar DNS98 · 14%
  • Wix75 · 10%
  • Web host DNS70 · 10%
  • Google32 · 4%
  • Managed DNS27 · 4%
DN-02

Domain state

  • Live567 · 79%
  • Blocked or error (4xx/5xx)99 · 14%
  • HTTP only (no HTTPS)20 · 3%
  • No response14 · 2%
  • Dead (DNS)13 · 2%
  • Parked / placeholder9 · 1%

DNSSEC signed 23 · CAA 8 · apex resolves but www doesn't 7

06 · By sector and municipalitygroups of 10+

Who is doing well, and who isn't

Mean score among scored domains, DMARC enforcement among mail-receiving domains, and clean HTTPS among reachable sites. Groups under 10 domains are left out so a single business can't be picked out of a row.

SEC-01

By sector

SectornScoreDMARC enforcedHTTPS ok
Other/Retail2746613%98%
Restaurant1276711%99%
Attraction/Recreation806711%98%
Retail416914%95%
Cafe/Bakery346711%94%
Accommodation276812%100%
Agri/Greenhouse206924%90%
Winery196932%100%
Non-profit/Community166933%100%
Health & Beauty166923%100%
Brewery/Distillery147221%100%
SEC-02

By municipality

MunicipalitynScoreDMARC enforcedHTTPS ok
Windsor3246812%98%
Tecumseh886310%98%
Kingsville597020%98%
Leamington536917%96%
Amherstburg506720%98%
Harrow337215%100%
Essex286821%96%
LaSalle206311%100%
Lakeshore196422%94%
Belle River187414%94%

By platform

PlatformnScoreHSTSNo headers
WordPress2316316%74%
Custom / unidentified1557134%54%
Wix857576%0%
Shopify6578100%0%
Squarespace386795%0%
Weebly375670%100%
Static / JS framework157873%27%
GoDaddy Website Builder136777%23%
07 · Scorecard695 scored · mean 67 · median 67

How Windsor-Essex grades out

Each domain that answers gets a score out of 100 from the checks above (40 points email, 40 website, 20 platform disclosure; the method section has the rubric). The 27 domains that no longer resolve are counted in section 05 and left out of the scoring. Across the 695 scored domains in Windsor-Essex the mean is 67 and the median 67. 112 (16%) grade A, which in this rubric means every outside-visible control a small business can set is set. 25 grade F.

SC-02

Most common findings

  • No DKIM at common selectors360 · 50%
  • No HSTS header347 · 48%
  • No security headers307 · 43%
  • No DMARC record293 · 41%
  • SPF ends in softfail (~all)263 · 36%
  • DMARC p=none (monitor only)192 · 27%
  • No MX record (domain does not receive mail)129 · 18%
  • No SPF record98 · 14%
  • HTTP does not redirect to HTTPS90 · 12%
  • Server/PHP version disclosed in headers86 · 12%
  • WordPress 7.1.3 version visible82 · 11%
  • Mixed content (http27 · 4%
SC-01

Grade distribution

112A · 16%
205B · 29%
262C · 38%
91D · 13%
25F · 4%

A 85+ · B 70+ · C 55+ · D 40+ · F under 40

08 · What to fix firstin order

8 changes that cover most of the gap

Every one of these is a DNS record, a header, or a setting in a platform the business already pays for. None of them need new software.

  1. Publish a DMARC record and move it to p=quarantine, then p=reject, once the SPF and DKIM sources are listed. Most providers document this in under a page.
  2. Make sure SPF ends in -all (or ~all while testing) and lists only the services that send as the domain. Delete the record for any domain that doesn't send mail and add a null MX.
  3. Turn on DKIM signing in the mail platform. Microsoft 365 and Google Workspace both leave it off until an admin enables it.
  4. Redirect HTTP to HTTPS and add an HSTS header. On WordPress that is a 2-line change in the web server config or a setting in the host's panel.
  5. Remove the version strings: the WordPress generator tag, the Server and X-Powered-By headers. None of them are needed for the site to work.
  6. Add the 4 basic headers (X-Content-Type-Options, X-Frame-Options or a frame-ancestors CSP, Referrer-Policy, Permissions-Policy). Cloudflare and most hosts can inject them without touching the site.
  7. Update PHP off 7.x and jQuery off 1.x, or move the site to a host that does it for you.
  8. Let expired or unused domains go properly: either keep renewing them with a null MX and SPF -all, or accept that the next registrant inherits the name.

Next step

Your own line from this data

Every business in the sample can have its own results, with the fix list for its platform, from the underlying dataset. Media and economic development offices can get the full regional breakdown, including the sector and municipality tables at finer grain, under the same no-names rule.

Book a scoping callOne-page summary (PDF)Media requestsGet in touch

09 · Method and limitsOctober 27, 2026

How the numbers were collected

  • Sample: 722 businesses listed in public chamber of commerce, BIA, economic development, and municipal directories for Windsor-Essex, kept only when the directory itself published a website on the business's own domain. National chains, government, hospitals, school boards, and franchise corporate sites were excluded. One row per root domain.
  • DNS: A, NS, MX, TXT (SPF), _dmarc TXT, DKIM at the selectors each mail platform uses by default plus a short generic list, _mta-sts, _smtp._tls, default._bimi, and CAA, resolved over DNS-over-HTTPS with DNSSEC validation reported by the resolver.
  • Web: one request to http://domain/ following redirects, one to https://domain/ (falling back to www), response headers, certificate subject, issuer, and expiry as presented, negotiated TLS version, and a single TLS 1.1-capped handshake to see whether the server accepts it. Platform fingerprints come from the home page HTML only (generator tag, asset paths, well-known builder markers).
  • Browser render: each reachable site was also loaded once in a headless Chromium browser as a normal visitor, to read the rendered page (which resolves JavaScript-built sites a plain fetch cannot fingerprint), the trackers it runs, and the third-party origins it loads. One home-page view, no clicks, no form entry.
  • Hosting: the serving IP of the final HTTPS hostname was resolved over DNS, then its reverse DNS name and the announcing network (ASN and country) were read from Team Cymru's public DNS service. CDN and WAF signatures come from response header names and cookie names on the home page. One extra request per site fetched /.well-known/security.txt.
  • PHP2Shell exposure is read from the version string in X-Powered-By or Server headers only, compared against the fixed releases in the PHP advisory of October 21, 2026. No request was sent that touches either vulnerability. Distributions such as Debian and Ubuntu backport fixes without changing the version number, so an old-looking version is not proof of exposure, and a hidden version is not proof of safety.
  • Not done: no vulnerability scanning, no port scans, no login or admin pages, no crawling beyond the home page, no mail sent, no interaction with any form. Everything here is what a browser and a DNS resolver see on a first visit.
  • Limits: DKIM is checked at known selectors only, so a domain signing at a custom selector shows as not found. Fingerprints identify a platform from markers on one page and can miss heavily customized installs. Results are a point-in-time read on the date shown and sites change daily. Sector labels are approximate.
  • Scoring (100 points): email 40 (SPF present 10, SPF -all 5, DMARC present 10, DMARC quarantine or reject 10, DKIM found 5; domains with no MX are scored on the remaining 60), website 40 (valid HTTPS 15, HTTP to HTTPS redirect 5, HSTS 5, TLS 1.1 refused 5, X-Content-Type-Options 2, frame protection 3, Referrer-Policy 2, enforced CSP 3), platform 20 (no server version in headers 5, no CMS version in page 5, no jQuery 1.x 5, no mixed content 5). Grades: A 85+, B 70+, C 55+, D 40+, F below 40.
  • Validation and environment correction: the data was cross-checked against an independent direct-network re-scan of the same domains (1,167 records corrected, 273 confirmed). Two collection-environment artifacts were found and removed. Serving IP addresses that the collection proxy had returned as a placeholder were replaced with the real addresses resolved over DNS. Security headers that the original high-concurrency pass had missed on some responses were recovered by taking, for each site, the union of three careful measurements, since a scan can miss a header that is present but never reports one that is absent. Certificate issuers and site status were checked and found accurate as originally collected.
  • No business is named in this report. Each business can get its own line from the underlying data on request.

Author: Hans Study, CISSP, independent network and security consultant, Ontario, Canada. Published as part of the close of Cyber Security Awareness Month, October 2026. Companion reports: London-Middlesex, Sarnia-Lambton, Chatham-Kent, Kitchener-Waterloo, Cambridge, Brantford-Brant. The combined numbers and the 5 fixes are on the series hub.