Skip to content

Licence GPL-3.0 et API locale réservée à l'interface - #8

Merged
steodec merged 3 commits into
mainfrom
worktree-license-cors
Oct 4, 2026
Merged

steodec merged 3 commits into
mainfrom
worktree-license-cors

Conversation

@steodec

@steodec steodec commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Licence

  • Ajout de LICENSE (GNU GPL v3, texte officiel) et d'une section « Licence » dans le README. Cohérent avec les ressources reprises du client Leek Wars, déjà sous GPL v3.

Sécurité : API locale

Avant, le serveur répondait Access-Control-Allow-Origin: * : n'importe quel site ouvert dans le navigateur pouvait piloter 127.0.0.1:3737 (lancer des combats, dépenser du capital, lancer des analyses IA payantes…).

Maintenant (rejectedAccess dans server/index.js), une requête /api est refusée en 403 forbidden_origin si :

  • son Origin n'est pas l'interface : tauri://localhost, http(s)://tauri.localhost, Vite localhost:1420, le serveur lui-même, ou LWL_ALLOWED_ORIGINS ;
  • elle n'a pas d'Origin mais vient d'un autre site (Sec-Fetch-Site: cross-site, ex. balise <img>) ;
  • son Host n'est pas local (protection contre le rebinding DNS), quand le serveur écoute en local.

Le CORS ne renvoie plus * mais l'origine autorisée. curl, scripts et Claude (sans Origin) ne changent pas. Les fichiers statiques ne sont pas concernés.

Tests

12 cas testés au curl, tous conformes : appli Tauri (Windows et macOS/Linux), Vite, même origine, préflight et scripts → acceptés ; site tiers en GET, préflight, POST de formulaire simple, balise <img> et rebinding DNS → 403, sans effet (le POST n'a rien modifié).

⚠️ Le serveur est embarqué dans l'application : le correctif n'atteindra les utilisateurs qu'avec une nouvelle version (0.6.1).

🤖 Generated with Claude Code

steodec and others added 3 commits October 3, 2026 16:26
- LICENSE (GNU GPL v3) et section Licence du README
- Serveur : les requêtes /api venant d'une page web autre que l'interface
  (Tauri, Vite en dev, interface servie par le serveur, LWL_ALLOWED_ORIGINS)
  sont refusées en 403, ainsi qu'un Host non local (rebinding DNS) ;
  CORS limité à ces origines au lieu de *. curl et scripts inchangés.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@steodec
steodec merged commit 4bb2f80 into main Oct 4, 2026
4 checks passed
@steodec
steodec deleted the worktree-license-cors branch October 4, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant