|
| 1 | +# Security policy |
| 2 | + |
| 3 | +## Reporting a vulnerability |
| 4 | + |
| 5 | +**Do not open a public issue.** Message [@relaystack on Telegram](https://t.me/relaystack) |
| 6 | +and include what you found, where, and how to reproduce it. If you prefer, use |
| 7 | +GitHub's [private vulnerability reporting](../../security/advisories/new) on this |
| 8 | +repository. |
| 9 | + |
| 10 | +I aim to acknowledge within three working days. There is no bounty — this is a |
| 11 | +one-person business, and I would rather say that up front than imply otherwise. |
| 12 | + |
| 13 | +## Scope |
| 14 | + |
| 15 | +This is a **static site**: no server, no database, no authentication, no user |
| 16 | +accounts, no cookies, and no client-side JavaScript. That removes most of the |
| 17 | +usual attack surface. The parts that remain real: |
| 18 | + |
| 19 | +- **The build and its dependencies** — supply chain, including the GitHub Actions |
| 20 | + used to deploy |
| 21 | +- **The deploy path** — anything that could get code onto the published site |
| 22 | +- **Content** — a link, a claim, or an embedded asset that misleads a visitor |
| 23 | + |
| 24 | +Out of scope: findings that require the visitor to have already compromised their |
| 25 | +own machine, and reports produced solely by an automated scanner with no working |
| 26 | +proof. |
| 27 | + |
| 28 | +## What the site does deliberately |
| 29 | + |
| 30 | +- **No third-party requests.** Fonts are self-hosted; there are no analytics, |
| 31 | + pixels or embedded widgets. A visitor's browser talks to this domain and nothing |
| 32 | + else, except when they click a link out. |
| 33 | +- **No client-side JavaScript.** Nothing executes on the visitor's machine. |
| 34 | +- **No form, no data collection.** Contact happens on Telegram, which is a separate |
| 35 | + service with its own terms. |
| 36 | +- **Dependencies pinned** by lockfile; Dependabot watches npm and the Actions. |
| 37 | +- **Deploys only from `main`**, through the workflow in `.github/workflows/deploy.yml`, |
| 38 | + which fails the build if the SEO files are missing or any internal link is broken. |
0 commit comments