Skip to content

Harden app security and clean unused exports - #20

Open
firminunderscore wants to merge 2 commits into
mainfrom
codex/audit-site-security-and-remove-unused-code
Open

Harden app security and clean unused exports#20
firminunderscore wants to merge 2 commits into
mainfrom
codex/audit-site-security-and-remove-unused-code

Conversation

@firminunderscore

Copy link
Copy Markdown
Member

Motivation

  • Renforcer la surface de sécurité de l'API et des assets en appliquant des en-têtes sécurisés et en limitant les origines de confiance pour l'authentification.
  • Empêcher des requêtes mutatives cross‑site ou avec des corps non JSON en validant l'Origin et le Content-Type.
  • Réduire le bruit et les exports publics inutilisés pour clarifier l'API interne et faciliter l'audit.

Description

  • Restreint better-auth à la seule origine configurée en remplaçant la logique qui faisait confiance à l'Origin entrant par trustedOrigins: [origin] (worker/auth.ts).
  • Ajouté des en-têtes de sécurité globaux (CSP, Referrer-Policy, X-Content-Type-Options, X-Frame-Options, Permissions-Policy) et une fonction withSecurityHeaders pour appliquer ces en-têtes aux réponses JSON et aux assets (worker/index.ts).
  • Durci l'API en ajoutant assertTrustedOrigin qui bloque les méthodes mutatives cross‑origin et en exigeant Content-Type: application/json dans requestBody pour éviter des soumissions non prévues (worker/index.ts).
  • Nettoyé plusieurs exports inutilisés en les rendant internes (non export) dans les modules concernés (shared/game.ts, src/lib/posthog.ts, src/components/GameReplay.tsx, src/components/ui.tsx, src/game/*, src/lib/auth.ts), et ajouté le script check:words pour l'utilitaire existant de validation de mots (package.json).

Testing

  • npm run typecheck a réussi sans erreurs et a validé les changements de types.
  • npm run build n'a pas pu s'exécuter dans cet environnement (Node v20) à cause d'une dépendance (@cloudflare/vite-plugin / wrangler) qui requiert Node >= 22 et importe node:module.registerHooks.
  • npm audit --omit=dev signale encore 6 vulnérabilités modérées dans une chaîne de dépendances liée à drizzle-kit/better-auth sans correctif automatique disponible.
  • npx knip --no-progress a été exécuté et a rapporté quelques fichiers/exports inutilisés restants et l'impossibilité de charger complètement vite.config.ts dans cet environnement (signalé comme limitation de l'outil ici).

Codex Task

@firminunderscore

Copy link
Copy Markdown
Member Author

@copilot resolve the merge conflicts in this pull request

met aussi a jour les modifications car entre temps j'ai merge des pr sur main.
verifie que quand je vais mettre en prod rien ne va peter

Copilot AI commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

@copilot resolve the merge conflicts in this pull request

met aussi a jour les modifications car entre temps j'ai merge des pr sur main.
...

C’est fait dans cbf99d5 : j’ai mergé origin/main, résolu le conflit dans shared/game.ts, puis relancé npm run typecheck et npm run build avec succès pour vérifier que la prod ne casse pas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants