Architecture du site
Vue d'ensemble de la stack PHP, du routage et de l'organisation des dossiers.
Stack technique
| Couche | Technologie |
|---|---|
| Backend | PHP 8.3+, PDO, sessions |
| Base de données | MySQL 5.7+ / MariaDB 10.3+ |
| Frontend | Tailwind CSS (CDN + build Atlas), JS vanilla |
| Serveur | Apache + mod_rewrite |
| PHPMailer |
Organisation des dossiers
| Section | Dossier | Rôle |
|---|---|---|
| Routing | Apache + réécritures | URLs propres, dispatch principal |
| Présentation | Interfaces web + assets | Pages membres, styles, scripts |
| Métier | Services partagés | XP, wallet, modération, sécurité, notifications |
| API | Endpoints JSON | Données et actions pour le front |
| Données | Configuration + MySQL | Paramètres site et persistance |
| Wiki | wiki/ | Documentation PHP (catalogue wiki_pages_catalog(), sanitization HTML) |
| Uploads CDN | uploads-domain/ | Admin galerie, API stats |
| Atlas dispatch | atlas-domaine/ | API same-origin sur sous-domaine Atlas |
| Ops | scripts/, docs/ | CRON, seeds, documentation technique |
Flux de requête
Client → URL → routage → logique applicative → base MySQL
→ Réponse HTML ou JSON
Sécurité applicative
- Sessions sécurisées (timeout 45 min), CSRF sur actions sensibles
- RBAC : rôles
admin,modo,animateur,veilleur_cul, etc. - Headers via
setSecurityHeaders(): X-Frame-Options, CSP progressive (CSP_MODE) - Atlas step-up : mot de passe + OTP email (TTL 1 h)
- Rate limit API : 900 req/IP/min
Wiki — rendu sécurisé
Le contenu HTML des pages wiki est extrait de fichiers éditoriaux, réécrit (liens internes) puis assaini avant affichage. Aucun script inline ni iframe n'est autorisé dans le contenu.
Configuration locale non versionnée sur le serveur de production.