fix(admin): remove stale unauthenticated static admin mockups #19

Merged
Corentin merged 1 commit from fix/p3-remove-stale-admin-html into dev 2026-06-16 14:20:45 +02:00
Owner

Probleme (security-by-design)

6 maquettes statiques .html du back-office (demo de mai) etaient restees dans le docroot du vhost admin. Apache les servait telles quelles (vhost.conf : RewriteCond %{REQUEST_FILENAME} !-f -> pas de reecriture vers index.php), donc hors SessionGuard.

Preuve live (domaine admin, sans cookie) :

  • /admin/dashboard -> 200 mais redirige vers /login (PHP garde, OK)
  • /api/me -> 401 (API gardee, OK)
  • /users.html -> 200, 19 Ko servis bruts (aucune garde)
  • /dashboard.html -> 200, 29 Ko / /catalogue.html -> 200, 33 Ko

Information disclosure (structure du back-office, page Utilisateurs avec colonnes nom/email/role, login.html fantome) en contradiction avec la posture SbD. Ce sont des maquettes statiques (aucun fetch/API), donc pas de donnee reelle exposee, mais c'est un piege latent.

Correctif

  • Suppression des 6 .html (dashboard, users, catalogue, commandes, cuisine, login). Superseded par les pages PHP rendues serveur et gardees (P3).
  • Ces maquettes ne se liaient qu'entre elles (ilot mort) : aucun lien entrant cote PHP/JS/CSS.
  • docs/api/conventions.md : la ligne d'exemple citant login.html corrigee.

Pas de label auto-merge : relecture manuelle.

## Probleme (security-by-design) 6 maquettes statiques `.html` du back-office (demo de mai) etaient restees dans le docroot du vhost admin. Apache les servait **telles quelles** (`vhost.conf` : `RewriteCond %{REQUEST_FILENAME} !-f` -> pas de reecriture vers `index.php`), donc **hors `SessionGuard`**. Preuve live (domaine admin, sans cookie) : - `/admin/dashboard` -> 200 mais **redirige vers /login** (PHP garde, OK) - `/api/me` -> 401 (API gardee, OK) - `/users.html` -> **200, 19 Ko servis bruts** (aucune garde) - `/dashboard.html` -> 200, 29 Ko / `/catalogue.html` -> 200, 33 Ko Information disclosure (structure du back-office, page Utilisateurs avec colonnes nom/email/role, `login.html` fantome) en contradiction avec la posture SbD. Ce sont des maquettes statiques (aucun `fetch`/API), donc pas de donnee reelle exposee, mais c'est un piege latent. ## Correctif - Suppression des 6 `.html` (`dashboard`, `users`, `catalogue`, `commandes`, `cuisine`, `login`). Superseded par les pages PHP rendues serveur et gardees (P3). - Ces maquettes ne se liaient qu'entre elles (ilot mort) : aucun lien entrant cote PHP/JS/CSS. - `docs/api/conventions.md` : la ligne d'exemple citant `login.html` corrigee. Pas de label `auto-merge` : relecture manuelle.
Corentin added 1 commit 2026-06-16 12:09:25 +02:00
fix(admin): remove stale unauthenticated static admin mockups
All checks were successful
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 23s
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 19s
CI / static-tests (push) Successful in 33s
CI / static-tests (pull_request) Successful in 32s
CI / auto-merge (push) Has been skipped
CI / auto-merge (pull_request) Successful in 4s
92731c8b59
Les 6 pages .html du back-office (dashboard, users, catalogue, commandes,
cuisine, login) etaient des maquettes statiques de la demo de mai, restees
dans le docroot du vhost admin. Apache les servait telles quelles
(RewriteCond !-f -> pas de reecriture vers index.php), donc HORS SessionGuard :
information disclosure (structure du back-office, libelles, page utilisateurs)
accessible sans authentification, en contradiction avec la posture
security-by-design.

Elles sont superseded par les pages PHP rendues serveur et gardees (P3 :
/admin/dashboard, /admin/categories, /admin/products, /admin/profile/pin).
Les maquettes ne se liaient qu'entre elles (ilot mort) : aucun lien entrant
cote PHP/JS/CSS. La ligne d'exemple de docs/api/conventions.md qui citait
login.html est corrigee (assets/ servis tels quels).
Corentin merged commit ee14186a19 into dev 2026-06-16 14:20:45 +02:00
Corentin deleted branch fix/p3-remove-stale-admin-html 2026-06-16 14:20:46 +02:00
Sign in to join this conversation.
No reviewers
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: AcadeNice/corentin_wakdo#19
No description provided.