Executive Summary
This report summarizes passive security posture signals observed for perimeter-check.com. Assessments use non-intrusive, read-only checks of public DNS, TLS, HTTP, email, and related surface data. Results reflect configuration visible at the time of the scan; they are not a penetration test, covert red-team engagement, or substitute for a formal risk assessment. perimeter-check.com responded over HTTPS, and MX records exist for inbound mail. Web and email findings below reflect those observed surfaces.
The weighted composite posture score is 73 out of 100, indicating Good overall posture. The greatest scoring gaps relative to other areas are in email authentication and HTTP security headers, which should be prioritized for remediation planning.
The review recorded 14 findings. Representative themes among higher-severity items include Missing Strict-Transport-Security and Missing Content-Security-Policy. Detailed evidence, severity, and recommended actions appear in the findings section below.
Score Breakdown
Relative Strength By Area
Findings
| Severity | Title | Category · Glossary | Status |
|---|---|---|---|
| high | Missing Content-Security-Policy | HTTP Security Headers | warn |
| high | Missing Strict-Transport-Security | HTTP Security Headers | fail |
| medium | DMARC policy is p=none | Email Security | warn |
| medium | No DKIM selectors detected | Email Security | warn |
| medium | Outdated platform: WordPress | Components | warn |
| low | Email addresses visible on homepage | Exposure & Privacy | info |
| low | No cookie policy or consent notice detected | Compliance & transparency | warn |
| low | Server header exposed | Website | info |
| low | TLS 1.3 available (TLS 1.2 also enabled) | TLS/SSL | info |
| informational | CDN / edge detected | DNS & Infrastructure | info |
| informational | Privacy policy or notice appears discoverable | Compliance & transparency | pass |
| informational | Registrant data appears redacted in RDAP | Registration / WHOIS (RDAP) | pass |
| informational | RFC 9116 security.txt present | Compliance & transparency | pass |
| informational | Terms or conditions appear discoverable | Compliance & transparency | pass |
DNS Records
DNS hosting (hint) Cloudflare DNS (NS: ns1.cloudflare.com, ns2.cloudflare.com)
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Domain name resolves
A and/or AAAA records present for perimeter-check.com.
|
pass |
| informational |
Authoritative nameservers published
2 NS record(s) returned.
|
pass |
| informational |
MX records present
1 MX record(s); inbound mail routing is configured.
|
pass |
| informational |
www host resolves
DNS answers for www.perimeter-check.com.
|
pass |
| informational |
CAA records published
1 record(s) listing permitted certificate authorities.
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| informational | CDN / edge detected | info |
Technical Details (JSON)
{
"domain": "perimeter-check.com",
"apex_resolves": true,
"a": [
{
"host": "perimeter-check.com",
"type": "A",
"ip": "104.21.0.1"
}
],
"ns": [
{
"target": "ns1.cloudflare.com"
},
{
"target": "ns2.cloudflare.com"
}
],
"mx": [
{
"target": "aspmx.l.google.com",
"pri": 1
}
],
"caa": [
{
"flag": 0,
"tag": "issue",
"value": "letsencrypt.org"
}
],
"ipv6_posture": {
"has_aaaa": false,
"summary": "No AAAA record for perimeter-check.com in this sample."
},
"dnssec": {
"appears_signed": false
},
"provider_intel": "Cloudflare DNS (NS: ns1.cloudflare.com, ns2.cloudflare.com)",
"cdn_guess": "Possible provider keyword: cloudflare",
"http_to_https": {
"http_reachable": true,
"https_reachable": true,
"redirects_to_https": true
},
"www": {
"resolves": true,
"records": [
{
"type": "A",
"ip": "104.21.0.1"
}
]
}
}
Infrastructure & Edge
DNS hosting (hint) Edge / CDN: traffic likely proxied by Cloudflare
Technical Details (JSON)
{
"cdn_guess": "Possible provider keyword: cloudflare",
"http_to_https": {
"http_reachable": true,
"https_reachable": true,
"redirects_to_https": true
},
"provider_intel": "Edge / CDN: traffic likely proxied by Cloudflare"
}
Registration & WHOIS (RDAP)
DNS hosting (hint) Registration & WHOIS-style review uses public RDAP (not port 43 WHOIS).
Registrar (RDAP) Example Registrar LLC
Registration Facts
- RDAP
- Retrieved
- Registrar
- Example Registrar LLC
- Domain status
- client transfer prohibited, client delete prohibited
- Registered
- Jan 1, 2020 UTC
- Expires
- Jan 1, 2027 UTC (~270 days)
- Registrant visibility (hint)
- Registrant contact appears redacted or privacy-protected in RDAP
Suggestions
- Keep WHOIS privacy enabled; use an alias email for registrar notices if offered.
- RDAP is the modern public registry view; fields may differ from legacy WHOIS.
ICANN RDAP reflects registry/registrar data. It is not a full legal ownership record; some TLDs redact heavily.
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Registrant data appears redacted in RDAP
Registrant fields show privacy/redaction markers
|
pass |
| informational |
RDAP registration data retrieved
Public registry RDAP returned data for this TLD (not legacy port-43 WHOIS).
|
pass |
| informational |
Expiration date present in RDAP
Useful for renewal planning and takeover risk awareness.
|
pass |
| informational |
Registrant contact appears redacted or privacy-protected
Registrant contact appears redacted or privacy-protected in RDAP
|
pass |
Issues & notes
No issues or notes recorded for this area.
Technical Details (JSON)
{
"rdap_available": true,
"registrar": "Example Registrar LLC",
"domain_status": [
"client transfer prohibited",
"client delete prohibited"
],
"dates": {
"registration": "Jan 1, 2020 UTC",
"expiration": "Jan 1, 2027 UTC",
"last_changed": "Jun 15, 2024 UTC",
"days_to_expiry": 270
},
"privacy_summary": "Registrant contact appears redacted or privacy-protected in RDAP",
"note": "ICANN RDAP reflects registry/registrar data. It is not a full legal ownership record; some TLDs redact heavily.",
"registration_facts": [
{
"label": "RDAP",
"value": "Retrieved"
},
{
"label": "Registrar",
"value": "Example Registrar LLC"
},
{
"label": "Domain status",
"value": "client transfer prohibited, client delete prohibited"
},
{
"label": "Registered",
"value": "Jan 1, 2020 UTC"
},
{
"label": "Expires",
"value": "Jan 1, 2027 UTC (~270 days)"
},
{
"label": "Registrant visibility (hint)",
"value": "Registrant contact appears redacted or privacy-protected in RDAP"
}
],
"registration_suggestions": [
"Keep WHOIS privacy enabled; use an alias email for registrar notices if offered.",
"RDAP is the modern public registry view; fields may differ from legacy WHOIS."
],
"provider_intel": "Registration & WHOIS-style review uses public RDAP (not port 43 WHOIS)."
}
Website
Transfer encoding gzip (Content-Encoding) · probe: Accept-Encoding gzip, deflate, br
Third-Party Tracking & Analytics
Detected from homepage HTML (script URLs and inline hints). Dynamic tags loaded later are not visible here.
-
Google Tag Manager
googletagmanager.com/gtm.js?id=GTM-ABC12 -
Google Analytics (GA4 / gtag)
googletagmanager.com/gtag/js?id=G-XXXXXXXX -
Meta (Facebook) Pixel
connect.facebook.net/en_US/fbevents.js -
Hotjar
static.hotjar.com/c/hotjar-1.js -
LinkedIn Insight Tag
snap.licdn.com/li.lms-analytics/insight.min.js
DNS hosting (hint) Web / edge: traffic likely proxied by Cloudflare · Cloudflare edge
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
HTTPS homepage responds
HTTP 200 from https:// (homepage reachable).
|
pass |
| informational |
robots.txt available
Endpoint returned a successful response (HEAD probe).
|
pass |
| informational |
security.txt available
Endpoint returned a successful response (HEAD probe).
|
pass |
| informational |
sitemap.xml available
Endpoint returned a successful response (HEAD probe).
|
pass |
| informational |
HTTP response compression
Content-Encoding: gzip (probe sent Accept-Encoding: gzip, deflate, br).
|
pass |
| informational |
Sensitive-path probes clean
Configured probe paths did not look exposed (best-effort).
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| low | Server header exposed | info |
Technical Details (JSON)
{
"https": {
"ok": true,
"status": 200,
"headers": {
"server": "cloudflare",
"x-powered-by": "PHP/8.2.30",
"content-type": "text/html; charset=UTF-8"
},
"body": "<!doctype html><html><head><script src=\"https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXX\"></script></head><body><a href=\"/privacy\">Privacy</a></body></html>"
},
"http": {
"ok": true,
"status": 301
},
"mixed_content_hint": null,
"robots_txt": {
"exists": true,
"status": 200
},
"security_txt": {
"exists": true,
"status": 200
},
"sitemap_xml": {
"exists": true,
"status": 200
},
"favicon": {
"exists": true,
"status": 200
},
"sensitive_paths": {
"/.env": {
"status": 404,
"length": 15,
"likely_exposed": false
},
"/.git/config": {
"status": 404,
"length": 12,
"likely_exposed": false
}
},
"response_compression": {
"ok": true,
"status": 200,
"encodings": [
"gzip"
],
"header_raw": "gzip",
"probe_accept_encoding": "gzip, deflate, br"
},
"provider_intel": "Web / edge: traffic likely proxied by Cloudflare · Cloudflare edge",
"og_image": "https://www.iana.org/static/img/iana-logo.svg",
"tracking_signals": [
{
"id": "google_tag_manager",
"label": "Google Tag Manager",
"detail": "googletagmanager.com/gtm.js?id=GTM-ABC12"
},
{
"id": "google_analytics_ga4",
"label": "Google Analytics (GA4 / gtag)",
"detail": "googletagmanager.com/gtag/js?id=G-XXXXXXXX"
},
{
"id": "facebook_pixel",
"label": "Meta (Facebook) Pixel",
"detail": "connect.facebook.net/en_US/fbevents.js"
},
{
"id": "hotjar",
"label": "Hotjar",
"detail": "static.hotjar.com/c/hotjar-1.js"
},
{
"id": "linkedin_insight",
"label": "LinkedIn Insight Tag",
"detail": "snap.licdn.com/li.lms-analytics/insight.min.js"
}
]
}
HTTP Security Headers
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
X-Content-Type-Options set
nosniff
|
pass |
| informational |
X-Frame-Options set
SAMEORIGIN
|
pass |
| informational |
Referrer-Policy set
strict-origin-when-cross-origin
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| high | Missing Content-Security-Policy | warn |
| high | Missing Strict-Transport-Security | fail |
Technical Details (JSON)
{
"headers": {
"strict-transport-security": "",
"content-security-policy": "",
"x-frame-options": "SAMEORIGIN",
"x-content-type-options": "nosniff",
"referrer-policy": "strict-origin-when-cross-origin"
},
"checks": {
"hsts": "",
"csp": "",
"x-frame-options": "SAMEORIGIN",
"x-content-type-options": "nosniff",
"referrer-policy": "strict-origin-when-cross-origin"
}
}
TLS / SSL
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Certificate lifetime acceptable
~120 days until expiry (not in urgent renewal window).
|
pass |
| informational |
TLS 1.3 negotiated
Probe handshake using TLS 1.3 succeeded.
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| low | TLS 1.3 available (TLS 1.2 also enabled) | info |
Technical Details (JSON)
{
"days_remaining": 120,
"tls_versions": {
"tls1_3": true,
"tls1_2": true
},
"certificate": {
"subject": "CN=perimeter-check.com",
"issuer": "CN=R3,O=Let's Encrypt,C=US",
"valid_to": "2025-08-01T12:00:00Z"
},
"certificate_transparency": {
"names_sample": [
"perimeter-check.com",
"www.perimeter-check.com",
"api.perimeter-check.com"
]
}
}
Email Security
DNS hosting (hint) Inbound mail: likely Google Workspace / Gmail (primary MX: aspmx.l.google.com, priority 1)
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
MX records configured
Primary MX: aspmx.l.google.com
|
pass |
| informational |
SPF record published
v=spf1 include:_spf.perimeter-check.com ~all
|
pass |
| informational |
DMARC record published
v=DMARC1; p=none; rua=mailto:[email protected]
|
pass |
| informational |
DKIM DNS record(s) found
Selectors with DKIM1: selectors_checked, records
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| medium | DMARC policy is p=none | warn |
| medium | No DKIM selectors detected | warn |
Technical Details (JSON)
{
"dmarc": "v=DMARC1; p=none; rua=mailto:[email protected]",
"spf": "v=spf1 include:_spf.perimeter-check.com ~all",
"mx": [
{
"target": "aspmx.l.google.com",
"pri": 1
}
],
"dkim": {
"selectors_checked": [
"default",
"google"
],
"records": []
},
"provider_intel": "Inbound mail: likely Google Workspace / Gmail (primary MX: aspmx.l.google.com, priority 1)"
}
Technology & Components
Platforms & CMS
| Platform | Detected | Reference latest | Status |
|---|---|---|---|
| WordPress | 6.6.2 | 6.7.2 | Update available |
Reference latest for self-hosted WordPress uses bundled defaults plus the WordPress.org API when the version cache is refreshed.
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Platforms / CMS detected
WordPress (6.6.2)
|
pass |
| informational |
Client libraries fingerprinted
jQuery 3.5.1; Lodash 4.17.20
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| medium | Outdated platform: WordPress | warn |
Technical Details (JSON)
{
"components": [
{
"name": "jQuery",
"version": "3.5.1",
"intel_key": "jquery"
},
{
"name": "Lodash",
"version": "4.17.20",
"intel_key": "lodash"
}
],
"platforms": [
{
"id": "wordpress",
"name": "WordPress",
"version": "6.6.2",
"confidence": "high",
"evidence": "meta generator",
"intel_key": "wordpress",
"reference_latest": "6.7.2",
"version_status": "behind"
}
],
"raw_generators": [
"WordPress 6.6.2"
]
}
Exposure & Privacy
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Security contact or disclosure hint
Matched security@ / responsible disclosure style patterns.
|
pass |
| informational |
No form actions pointing to plain HTTP
No http:// form actions found in homepage HTML.
|
pass |
| informational |
No obvious staging/dev keywords in HTML
No staging/dev/test markers matched in page text.
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| low | Email addresses visible on homepage | info |
Technical Details (JSON)
{
"homepage": "ok",
"privacy_links": true,
"terms_links": true,
"contact_security": true,
"cookie_banner_hint": true,
"cookie_banner_detail": {
"likely": true,
"signals": [
"onetrust",
"generic_cmp"
]
},
"emails_on_page": [
"[email protected]"
],
"forms_http": false,
"password_fields": true,
"staging_leak": false,
"subdomains": {
"www": "resolves",
"api": "resolves"
},
"ipv6_note": "No AAAA record for perimeter-check.com; IPv6-only users may rely on transitional paths.",
"security_txt": {
"reachable": true,
"url": "https://perimeter-check.com/.well-known/security.txt",
"parsed": true,
"contact": "mailto:[email protected]",
"expires": "2026-12-31T23:59:59Z",
"canonical": [
"https://perimeter-check.com/.well-known/security.txt"
],
"preview": "Contact: mailto:[email protected]\nExpires: 2026-12-31T23:59:59Z\n"
}
}
Compliance & Transparency
Transparency Automated transparency signals only; not legal or jurisdictional compliance advice.
Strengths
| Severity | Observation | Status |
|---|---|---|
| informational |
Privacy policy or notice appears discoverable
Privacy-related link href in homepage HTML
|
pass |
| informational |
RFC 9116 security.txt present
Contact: mailto:[email protected]
|
pass |
| informational |
Terms or conditions appear discoverable
Terms-related link in homepage HTML
|
pass |
| informational |
security.txt with Contact field
mailto:[email protected]
|
pass |
Issues & notes
| Severity | Observation | Status |
|---|---|---|
| low | No cookie policy or consent notice detected | warn |
Technical Details (JSON)
{
"disclaimer": "Automated transparency signals only; not legal or jurisdictional compliance advice.",
"security_txt": {
"reachable": true,
"url": "https://perimeter-check.com/.well-known/security.txt",
"parsed": true,
"contact": "mailto:[email protected]",
"expires": "2026-12-31T23:59:59Z",
"canonical": [
"https://perimeter-check.com/.well-known/security.txt"
],
"preview": "Contact: mailto:[email protected]\nExpires: 2026-12-31T23:59:59Z\n"
},
"signals": {
"privacy_discoverable": true,
"privacy_url": null,
"cookie_policy_discoverable": false,
"cookie_policy_url": null,
"terms_discoverable": true,
"terms_url": null
}
}
Surface Discovery & CORS
Surface checks are sampled and best-effort; verify manually before acting.
Technical Details (JSON)
{
"subdomain_candidates": [
{
"host": "www.perimeter-check.com",
"https_ok": true,
"note": "Sample surfaced host"
},
{
"host": "api.perimeter-check.com",
"https_ok": true,
"note": "Sample API host"
}
],
"cors_probes": [
{
"host": "api.perimeter-check.com",
"url": "https://api.perimeter-check.com/",
"acao": "",
"acac": "",
"note": "No ACAO on OPTIONS sample"
}
],
"truncated": false,
"note": "Surface checks are sampled and best-effort; verify manually before acting."
}