Hans StudyNetwork and security consultant

State of cyber hygiene · Brantford and Brant County · October 2026

State of cyber hygiene in Brantford and Brant County

180 small businesses in Brantford and Brant County 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 Brantford and Brant County's small-business economy looks like.

180 domainsPassive checks onlyCollected October 27, 2026No business named
6+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
180Businesses checkedBrantford (141), Paris (22), St. George (8), Scotland (4), Mount Pleasant (2), Burford (2)
84%Can be impersonated by email108 of 129 have no enforced DMARC, so mail can be forged as them
19Running outdated software11 behind on WordPress, 8 on a code library retired in 2016
83%HTTPS set up properly16 serve a broken or missing certificate
37Dead or parked domains32 no longer work, 5 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 6 small-business sites in Brantford and Brant County 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. 180 small businesses in Brantford and Brant County 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. 108 of them (84%) 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 21 (16%) have that protection turned on.
  4. 60 of these sites run WordPress. Of the 42 that publish their version number, 11 are behind on security updates, and 8 sites across the sample still load a code library that stopped getting fixes in 2016. 15 of them take card payments through WooCommerce on that same software.
  5. 115 sites (83%) have HTTPS set up properly. The other 23 reachable sites do not fully, and 16 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. 10 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. 32 domains these businesses are still listed under no longer work, and 5 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 Brantford and Brant County lands at 63 out of 100. 16 earned an A. 13 failed outright.
01 · Email authentication129 mail domains

Most domains can be impersonated by email

129 of the 180 domains accept email (they publish an MX record). Of those, 119 (92%) publish an SPF record. 10 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 59 domains (46%), but only 21 (16%) set a policy of quarantine or reject. The other 38 sit at p=none, which is monitoring mode... the record is there, it just doesn't do anything to a forged message.

9 have neither SPF nor DMARC. 15 (12%) 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 Microsoft 365 (48 domains). Platform matters less than configuration. Tenants on Microsoft 365 in this sample enforce DMARC 21% of the time and Google Workspace tenants 9%; 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 129 domains that receive mail

  • SPF published119 · 92%
  • SPF ends in -all49 · 38%
  • DMARC published59 · 46%
  • DMARC enforced21 · 16%
  • DMARC reporting (rua)30 · 23%
  • DKIM at a known selector47 · 36%
  • SPF + DKIM + enforced DMARC15 · 12%
  • Neither SPF nor DMARC9 · 7%

MTA-STS 0 · TLS-RPT 0 · BIMI 0 · multiple SPF records 0 · SPF over 10 lookups 1

EM-02

DMARC policy

  • Reject10 · 8%
  • Quarantine11 · 9%
  • None (monitor only)38 · 29%
  • No record70 · 54%
  • Invalid0 · 0%
EM-03

Google Workspace against Microsoft 365

Of mail domains on eachMicrosoft 365Google WorkspaceFiltered (Proofpoint, Mimecast, etc.)Host-bundled
Domains4823156
SPF present100%83%87%100%
SPF ends in -all79%9%27%17%
DMARC present56%48%40%33%
DMARC enforced21%9%0%17%
DMARC p=none35%39%40%17%
DKIM found31%30%33%0%
SPF + DKIM + enforced DMARC15%4%0%0%
Mean score67556744

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
Microsoft 3654821%35%44%
Other (small host or self-run)2726%15%59%
Google Workspace239%39%52%
Mail filtering or relay service150%40%60%
Hosting-bundled email617%17%67%
Zoho30%0%100%
Rackspace30%33%67%
GoDaddy email250%0%50%
Forwarding or transactional only20%0%100%
02 · Website configuration138 HTTPS sites

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

138 sites answer over HTTPS. 132 of those presented a certificate that validates cleanly; 6 did not (expired, issued for a different hostname, self-signed, or an incomplete chain), and 10 sites answer on plain HTTP only. 115 (83%) redirect a plain-HTTP visitor to the encrypted site. HSTS, the header that keeps browsers on HTTPS after the first visit, is set on 54 (39%).

Most negotiated TLS 1.3 (132) or 1.2 (6) with a modern client, which is the default on current hosting. 0 servers (0% of the 138 that completed the test) still accept a TLS 1.1 handshake. Browsers dropped it in 2020. 72 sites (52%) send none of the 4 basic browser security headers (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy). 22 (16%) announce their web server or PHP version in the response headers; 6 of the 14 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 138 sites answering on HTTPS

  • Certificate validates132 · 96%
  • HTTP redirects to HTTPS115 · 83%
  • HSTS header54 · 39%
  • HSTS max-age 1 year+37 · 27%
  • Refuses TLS 1.1138 · 100%
  • X-Content-Type-Options55 · 40%
  • X-Frame-Options33 · 24%
  • Referrer-Policy24 · 17%
  • Content-Security-Policy15 · 11%
  • Permissions-Policy24 · 17%
  • Behind Cloudflare46 · 33%
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 Brantford and Brant County, 14 sites announce their PHP version in a response header: 8 already show a fixed build, 0 show a supported branch below the fix, and 6 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

  • untrusted chain2 · 12%
  • hostname mismatch2 · 12%
  • self-signed1 · 6%
  • expired1 · 6%
  • HTTP only, no HTTPS10 · 62%

Certificates past their expiry date as served: 1

WB-03

Certificate issuers

  • Let's Encrypt101 · 73%
  • Google Trust Services23 · 17%
  • GoDaddy6 · 4%
  • Sectigo3 · 2%
  • DigiCert2 · 1%
  • Other1 · 1%
WB-04

PHP versions announced

  • PHP 8.3.364 · 29%
  • PHP 7.4.333 · 21%
  • PHP 8.1.343 · 21%
  • PHP 8.5.122 · 14%
  • PHP 8.2.352 · 14%

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

  • Cloudflare46 · 33%
  • Apache29 · 21%
  • nginx24 · 17%
  • Squarespace10 · 7%
  • LiteSpeed8 · 6%

Version string exposed: 22 · X-Powered-By PHP: 14 · PHP 8.3.36 (4), 7.4.33 (3), 8.1.34 (3), 8.5.12 (2)

03 · Platforms and CMS60 WordPress

WordPress carries the region, and tells you its version

60 of the 138 reachable sites run WordPress. That's 44%. 42 of them print the exact WordPress version in the page source. 31 are on a supported branch (7.1.3 or 7.0.7 at the time of the check) and 11 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 25 by resolving the JavaScript-rendered builders the plain fetch could not read.

19 WordPress sites load Elementor and 15 run WooCommerce, so card data and customer accounts sit on the same install as the brochure pages. 8 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, 138 sites

  • WordPress60 · 43%
  • Custom / unidentified25 · 18%
  • Wix23 · 17%
  • Squarespace10 · 7%
  • GoDaddy Website Builder3 · 2%
  • Duda3 · 2%
  • Drupal3 · 2%
  • Static / JS framework2 · 1%
  • Weebly2 · 1%
  • Joomla1 · 1%
PL-02

WordPress versions seen

  • WordPress 7.1.x29 · 69%
  • WordPress 7.0.x4 · 10%
  • WordPress 6.4.x2 · 5%
  • WordPress 6.9.x2 · 5%
  • WordPress 6.5.x1 · 2%
  • WordPress 6.1.x1 · 2%
  • WordPress 6.7.x1 · 2%
  • WordPress 5.9.x1 · 2%

Version visible 42 of 60 · current 7.1.3: 27 · supported branch: 31 · behind: 11

PL-03

Most-loaded WordPress plugins

  • elementor17 · 28%
  • contact-form-711 · 18%
  • elementor-pro9 · 15%
  • revslider8 · 13%
  • gravityforms5 · 8%
  • header-footer-elementor5 · 8%
  • fusion-builder5 · 8%
  • astra-addon4 · 7%
  • ultimate-elementor4 · 7%
  • business-reviews-bundle4 · 7%
  • bb-plugin4 · 7%
  • bb-ultimate-addon4 · 7%
PL-04

Front-end markers

  • Elementor19 · 14%
  • WooCommerce15 · 11%
  • jQuery 1.x (EOL)8 · 6%
  • Any jQuery version visible60 · 43%
  • Generator tag present64 · 46%
  • Mixed content on page7 · 5%

Median plugins visible per WordPress site: 3.0

04 · Hosting, CDN, and WAF138 sites

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

46 of the 138 reachable sites (33%) 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, 47 sites (34%) have some edge service in front of them. The rest answer straight from the host. For 44 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.

92 sites show their serving network. 17% of those are served from Canada and 77% from the United States, mostly Amazon and Google plus the big American shared hosts. 17 sites share one of 1 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. 56 sites negotiate HTTP/3, 121 HTTP/2, and 17 are still on HTTP/1.1 only; 23 domains (13%) 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)46 · 33%
  • Amazon Web Services14 · 10%
  • Google Cloud14 · 10%
  • Other (named host)13 · 9%
  • Squarespace10 · 7%
  • Newfold (Bluehost, HostGator)10 · 7%
  • OVH8 · 6%
  • InMotion5 · 4%
  • Rogers4 · 3%
  • DigitalOcean3 · 2%
  • GoDaddy2 · 1%
  • DreamHost1 · 1%
  • Akamai / Linode1 · 1%
  • Vultr1 · 1%
HS-02

Edge, CDN, and WAF signatures

  • Cloudflare46 · 33%
  • Wix platform19 · 14%
  • Squarespace platform10 · 7%
  • Google Cloud LB5 · 4%
  • AWS CloudFront1 · 1%

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

  • US117 · 85%
  • CA16 · 12%
  • NL1 · 1%
  • LT1 · 1%
  • IL1 · 1%
  • GB1 · 1%

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

HS-04

Protocol and transport

  • HTTP/356 · 41%
  • HTTP/2121 · 88%
  • HTTP/1.1 only17 · 12%
  • IPv6 address23 · 17%
  • HSTS preload-ready7 · 5%
  • 90-day certificates (automated)127 · 92%
  • Longer certificates (manual renewal)5 · 4%
  • security.txt published0 · 0%
HS-05

What the page loads from other people

  • Runs Google Analytics67 · 50%
  • Runs the Meta pixel11 · 8%
  • Any third-party tracker70 · 52%
  • No tracker at all65 · 48%
  • Pulls from 20+ outside origins4 · 3%
  • Self-contained (own domain only)19 · 14%

Rendered in a headless browser. Median 6 third-party origins per site, up to 27. 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 Analytics67 · 50%
  • Google Ads12 · 9%
  • Meta Pixel11 · 8%
  • Microsoft Clarity4 · 3%
  • Hotjar2 · 1%
  • Bing/UET1 · 1%
  • LinkedIn Insight1 · 1%
  • HubSpot tracking1 · 1%
05 · DNS and domains180 domains

DNS is where most of the easy wins sit

3 domains (2%) are DNSSEC-signed, and 1 publish a CAA record limiting which authorities can issue their certificates. 32 domains in the directories no longer resolve or don't answer at all, and 5 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

  • Other (small host or registrar)56 · 31%
  • Registrar DNS32 · 18%
  • GoDaddy31 · 17%
  • Web host DNS22 · 12%
  • Cloudflare22 · 12%
  • Wix6 · 3%
  • Managed DNS5 · 3%
  • AWS Route 533 · 2%
DN-02

Domain state

  • Live120 · 67%
  • Dead (DNS)28 · 16%
  • Blocked or error (4xx/5xx)13 · 7%
  • HTTP only (no HTTPS)10 · 6%
  • Parked / placeholder5 · 3%
  • No response4 · 2%

DNSSEC signed 3 · CAA 1 · apex resolves but www doesn't 2

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
Restaurant12630%100%
Dental127230%100%
Landscaping115610%89%
Electrical115938%82%
Construction106520%100%
Legal106420%100%
SEC-02

By municipality

MunicipalitynScoreDMARC enforcedHTTPS ok
Brantford1156316%94%
Paris20660%100%

By platform

PlatformnScoreHSTSNo headers
WordPress606315%78%
Custom / unidentified256120%56%
Wix237587%0%
Squarespace107490%10%
07 · Scorecard148 scored · mean 63 · median 66

How Brantford and Brant County 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 32 domains that no longer resolve are counted in section 05 and left out of the scoring. Across the 148 scored domains in Brantford and Brant County the mean is 63 and the median 66. 16 (11%) grade A, which in this rubric means every outside-visible control a small business can set is set. 13 grade F.

SC-02

Most common findings

  • No HSTS header84 · 47%
  • No DKIM at common selectors77 · 43%
  • No security headers72 · 40%
  • No DMARC record66 · 37%
  • SPF ends in softfail (~all)62 · 34%
  • DMARC p=none (monitor only)38 · 21%
  • Domain does not resolve or does not answer32 · 18%
  • WordPress 7.1.3 version visible27 · 15%
  • HTTP does not redirect to HTTPS26 · 14%
  • No MX record (domain does not receive mail)24 · 13%
  • Server/PHP version disclosed in headers22 · 12%
  • HTTPS unavailable10 · 6%
SC-01

Grade distribution

16A · 11%
46B · 31%
51C · 34%
22D · 15%
13F · 9%

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: 180 businesses listed in public chamber of commerce, BIA, economic development, and municipal directories for Brantford and Brant County, 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, Windsor-Essex. The combined numbers and the 5 fixes are on the series hub.