Skip to main content

Security report for andrewkchan.dev

Andrew Chan · Technology · United States

Medium risk. 9 critical or high findings in Email security, Security headers and 1 other check.

Security score

61/100

Risk levelMedium

0–100, higher is better. How it is calculated

Andrew Chan's personal website serves as a technology-focused blog where he shares insights and posts related to software engineering. The site reflects his background as a software engineer based in San Francisco with prior experience at South Park Commons and Figma, and an academic foundation from UC Berkeley. The website targets technology enthusiasts and professionals interested in advanced technical topics. Technically, the site employs modern JavaScript libraries including Google Analytics for visitor tracking and Sentry for error monitoring, built on a modified Distill template. The design is clean, mobile-optimized, and provides a good user experience with clear navigation and relevant content. Security-wise, the site uses HTTPS and includes error monitoring but lacks explicit security headers and formal privacy or cookie policies, which are areas for improvement. No forms or sensitive data collection mechanisms are present, reducing attack surface. Overall, the site is a well-maintained personal blog with moderate technical maturity and a moderate security posture.

Scanned

NIS2 and GDPR posture

GDPR outside view
35/ 100 · High
Checks completed
7of 7

NIS2 Art. 21(2)

  1. (a) Risk analysis and security policies: Not visible from outside
  2. (b) Incident handling: One indicator
  3. (c) Business continuity, backups and crisis management: Not visible from outside
  4. (d) Supply chain security: Not visible from outside
  5. (e) Secure acquisition, development and maintenance, including vulnerability handling: Partly checked
  6. (f) Assessing the effectiveness of security measures: Not visible from outside
  7. (g) Cyber hygiene and security training: Not visible from outside
  8. (h) Cryptography and encryption: Partly checked
  9. (i) HR security, access control and asset management: One indicator
  10. (j) Multi-factor authentication and secured communications: Not visible from outside

This scan rated NIS2 with an earlier keyword method that is no longer shown; rescan for the per-article view. Risk management, continuity, supply chain, training, MFA, management oversight (Art. 20) and incident reporting (Art. 23) need internal evidence, and Guard cannot tell whether NIS2 applies to this organisation.

GDPR is indicative only, based on publicly visible signals: Articles 7, 12, 13 and 32 of Regulation (EU) 2016/679 and Article 5(3) of the ePrivacy Directive. Not a certification or legal assessment.

Priority findings

9 findings rated critical or high. Fix these first.

  1. Email security

    SPF, DKIM and DMARC stop others sending email that looks like it comes from your domain, a common route to phishing and invoice fraud.

    • Critical

      No email authentication configured

      Domain is vulnerable to email spoofing

      What to do: Implement SPF, DKIM, and DMARC immediately

  2. Security headers

    Security headers are instructions your web server sends to every visitor’s browser. Missing ones leave visitors more exposed to attacks such as clickjacking and injected scripts.

    • High

      Missing Strict-Transport-Security header

      Forces HTTPS connections

      What to do: Add "Strict-Transport-Security: max-age=31536000; includeSubDomains; preload"

      • CWE-319
      • OWASP A04:2025
      • ASVS V3.4.1
    • High

      Missing X-Frame-Options header

      Prevents clickjacking attacks

      What to do: Add "X-Frame-Options: DENY" or "X-Frame-Options: SAMEORIGIN"

    • High

      Missing Content-Security-Policy header

      Controls resources the browser is allowed to load

      What to do: Implement a Content-Security-Policy appropriate for your application

      • ASVS V3.4.3
      • OWASP Secure Headers: OWASP Secure Headers Project recommends Content-Security-Policy: default-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none';…
  3. GDPR outside view

    These are the privacy signals visitors and data protection authorities look for under GDPR.

    • High

      No Privacy Policy found

      GDPR requires a clear and accessible privacy policy

      What to do: Add a comprehensive privacy policy page and link to it prominently

Need hands-on remediation? Email guard@offseq.com

Keep watching andrewkchan.dev

This scan found 23 issues across 6 checks. Monitoring re-runs those checks daily, emails you when something material changes and records each fix, so you can show progress.

Daily monitoring

Recommended

€25per month

  • TLS certificates and expiry
  • DNS records
  • SPF, DKIM and DMARC
  • Security headers
  • GDPR and NIS2 posture
  • Exposed services
  • Third-party trackers
  • Security score drift

Email alerts on material changes and an exportable JSON history of every change.

Billed monthly to your card. Cancel anytime. The full timeline opens with your unlock code.

Full report

€39.90one-time

  • The complete analysis as a PDF you can cite
  • Email delivery with an unlock code
  • Lifetime access to this report

Prices incl. 21% VAT. Secure checkout by Mollie; sold by SEQ SIA, Latvia.

Results by check

Each check with its score, findings and the evidence it collected.

How this score is calculated

The security score runs 0–100, higher is better. It is the plain average of the security checks that completed in this scan, each counted equally. A check that could not run is left out: it counts neither as a pass nor as a fail.

Counted in this score

SSL/TLS
95
Security headers
15
Email security
40
DNS health
80
Network security
100
GDPR outside view
35
Average
61

Not counted

  • NIS2 outside view: Re-weights evidence from the TLS, email, DNS, network and hygiene checks, so counting it would count that evidence twice. Shown on its own.
  • OffSeq Observations: An AI reading of the site, useful context but not reproducible evidence. Shown on its own.

Findings that cap the score at 49

Each of these is serious on its own, so while any is present the site cannot rate better than high risk, however good the other checks are.

  • The certificate is not trusted by browsers
  • The website is not served over HTTPS
  • A database, remote desktop, file-sharing or Telnet service is reachable from the internet
  • The page loads a script from a compromised source
  • The domain registration has expired
  • SPF authorises every server to send mail as the domain

Partial scans

When the site blocks Guard or most checks cannot run, the score covers only the checks that ran (usually DNS and email), is capped at 75 and is shown as partial, without a risk level.

Risk levels

  • Critical0–25
  • High26–49
  • Medium50–75
  • Low76–100

Technical appendix

Business context, site observations and technical notes gathered during the scan, and the standards behind each reference.

Business context

Business profile

The website represents an individual personal brand rather than a commercial business entity. Its market position is that of a thought leader and content creator in the technology domain. The business model is content sharing without monetization or e-commerce components. The target audience includes software engineers and tech enthusiasts. The site leverages social media platforms such as GitHub, LinkedIn, and Twitter to extend reach and credibility. There are no partnerships or subsidiaries indicated. Growth indicators include regular blog posts on advanced technical topics. The lack of formal business contact information and policies suggests a focus on personal branding rather than commercial operations.

Security posture

The security posture is moderate. The site uses HTTPS and integrates Sentry for error and performance monitoring, which is a positive security practice. However, the absence of security headers such as Content-Security-Policy, X-Frame-Options, and HSTS reduces protection against common web attacks. No privacy or cookie policies are present, indicating compliance gaps with GDPR and other privacy regulations. No incident response or vulnerability disclosure information is provided. The site does not collect user data via forms, minimizing risk exposure. Recommendations include adding security headers, formalizing privacy and cookie policies, and providing security contact information to improve trust and compliance.

Recommendations

  1. Implement and enforce security headers including Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, and HSTS.
  2. Publish a comprehensive privacy policy and cookie policy to improve GDPR compliance and user transparency.
  3. Add explicit contact information for security incidents and general inquiries to enhance trust and incident response readiness.
  4. Regularly audit and update third-party libraries and scripts to mitigate vulnerabilities.
  5. Consider adding accessibility improvements and SEO enhancements to increase reach and usability.
Site observations

Automated reading of the public site. Ratings are indicative.

Business

Company
Andrew Chan
Description
Personal blog of a software engineer living in San Francisco, previously at South Park Commons and Figma, graduated from UC Berkeley in 2019. The blog posts mostly about tech-related topics.
Key services
Blog posts on technology and software engineering topics
Content quality
good
Branding
consistent

Technology

Stack
JavaScript, Google Analytics (gtag.js), Sentry (error tracking and performance monitoring), Custom JavaScript (template.v1.js)
Frameworks
Distill template (modified)
Performance
moderate
Mobile
good
Accessibility
basic
SEO
basic

Security

Observed score
60/100
Good practices seen
  • Use of Sentry for error monitoring
  • Use of HTTPS (implied by external script sources using https)

Analytics and tracking

Services
Google Analytics, Sentry
Tracking level
moderate
Privacy practices
poor

Advertising

Tracking pixels
Sentry
Marketing tools
Sentry
Transparency
basic

Site quality

Design
good
User experience
good
Content relevance
good
Navigation
good
Professionalism
good
Trustworthiness
moderate

Key observations

  1. No privacy, cookie, or terms of service policies found.
  2. No contact emails or phone numbers explicitly provided.
  3. Social media links to GitHub, LinkedIn, and Twitter are present and consistent with personal branding.
  4. Website uses modern JavaScript libraries and analytics tools.
  5. No forms or data collection fields detected.
  6. No explicit security headers detected in provided data.
  7. Content is well structured and focused on technology blog posts.
  8. No advertising networks detected beyond analytics and error tracking.
  9. No evidence of adult or questionable content.
Technical notes

Notes

The website is built on a modified Distill template using standard HTML, CSS, and JavaScript. It integrates Google Analytics and Sentry for analytics and error tracking respectively. The site is mobile responsive with a clean and consistent design. No CMS or hosting provider information is explicitly detected. Performance is moderate with no obvious blocking scripts or heavy resources. The site lacks advanced accessibility features but maintains basic usability. SEO is basic with meta tags and Open Graph tags present but incomplete (e.g., missing valid publication dates). No forms or interactive data collection mechanisms are present, reducing complexity and security risks. Overall, the technical implementation is solid for a personal blog but could benefit from enhanced security and compliance features.
Standards and sources

Reference chips under each finding point to the standard, regulation or specification the finding relates to. They are taken from the official datasets below and mapped conservatively: a finding with no defensible link shows none. NIS2 and GDPR references mark where a finding is relevant evidence, not a compliance verdict. Implementing Regulation (EU) 2024/2690 binds digital infrastructure and digital service providers; for other entities it is the most detailed public reading of the Article 21 measures. WCAG, EN 301 549, European Accessibility Act and Web Accessibility Directive references name the requirement an automated accessibility rule relates to; they are not a conformance verdict.

Retrieved 2026-10-25

Reviews of this site

Share your experience with andrewkchan.dev. Every review is verified by email and published after moderation.

Overall rating
Select a rating
4000 characters remaining

We’ll email you to confirm your review and keep your details private.

Community rating

No published reviews yet. Be the first to review andrewkchan.dev.

Feedback on this report

Rate this report, add an optional comment, and tell us if you want a security specialist to follow up.

Overall report quality
Select a rating
2000 characters remaining

We only use your feedback to improve Guard reports. Contact details are never shared.