Adam Schussel
Back to projects

Hardened Portfolio Deployment

A static site is a good place to practice the basics properly: a small attack surface, strict browser policies, and a container that can't do much even if something goes wrong.

Where it started

The first version of this site worked, but it had the problems many personal sites have:

The container

What the browser is told

Every response carries headers that limit what a page can do, even if something were injected into it:

The home page checks these headers live: it re-requests itself when it loads and displays what the server actually returned.

Disclosure

A security.txt file (RFC 9116) tells anyone who finds a problem how to report it and when that information expires.

Check it yourself

# fetch only the headers
curl -sI https://web.adamschussel.com/

# dev files should not be served
curl -s -o /dev/null -w "%{http_code}\n" https://web.adamschussel.com/package.json