Quiz 3 — Full-stack & sécurité
1. Twig échappe-t-il les valeurs par défaut ?
Réponse
Oui (anti-XSS). |raw le désactive (à réserver au HTML maîtrisé/assaini).
2. Comment une page réutilise-t-elle un gabarit commun ?
Réponse
extends 'base.html.twig' puis remplir des blocs (block body…).
3. Qu’est-ce qu’un composant Twig ?
Réponse
Une classe (props + logique) + un template, appelée en HTML <twig:Nom .../> — un composant serveur.
4. Quelle est l’idée centrale d’AssetMapper ?
Réponse
Servir JS/CSS sans bundler (modules ES + importmaps), sans node_modules ni build.
5. Quelle est la philosophie de Stimulus ?
Réponse
HTML source de vérité : attacher du comportement à du HTML existant via data-* (pas de virtual DOM).
6. Que fait Turbo Drive, et faut-il coder ?
Réponse
Navigation SPA-like (remplace le <body>), actif dès l’installation, sans code.
7. Où vit l’état d’un LiveComponent ?
Réponse
Sur le serveur (re-render serveur) ; chaque interaction = un aller-retour.
8. UX ou SPA Next.js : la question à se poser ?
Réponse
« Quel écran mérite quoi » : UX pour le CRUD interne/SEO/rapidité ; SPA pour l’état client riche/offline/mobile.
9. Condition standard pour traiter un formulaire ?
Réponse
if ($form->isSubmitted() && $form->isValid()) après handleRequest().
10. Avantage de lier un formulaire à un DTO plutôt qu’à l’entité ?
Réponse
Éviter le mass assignment, découpler, et réutiliser la validation avec l’API.
11. #[UniqueEntity] suffit-il à garantir l’unicité ?
Réponse
Non (course possible) : + unique: true en base (index unique).
12. Trois règles de sécurité pour un upload ?
Réponse
MIME réel validé, nom régénéré, stockage non exécutable (ou S3).
13. Différence authentification / autorisation ?
Réponse
Authentification = qui es-tu ? Autorisation = as-tu le droit ?
14. Qu’est-ce qui rend un firewall stateless ?
Réponse
stateless: true (pas de session, JWT) — pour l’API.
15. Rôle ou voter pour « le propriétaire ou un admin peut modifier CET objet » ?
Réponse
Un voter (décision dépendant de l’objet).
16. Cacher un bouton avec is_granted en Twig sécurise-t-il l’action ?
Réponse
Non : confort d’UI. La sécurité réelle est côté serveur (contrôleur/voter).
17. Quel endpoint renvoie un JWT ?
Réponse
POST /api/login_check (firewall en json_login, LexikJWT).
18. Peut-on « déconnecter » un JWT avant expiration ?
Réponse
Non (auto-suffisant) : access tokens courts + refresh tokens révocables.
19. Meilleur endroit pour stocker le JWT côté Next.js ?
Réponse
Un cookie httpOnly (posé côté serveur), pas localStorage (XSS).
20. Quelle config est impérative en production ?
Réponse
APP_ENV=prod, APP_DEBUG=0, profiler inaccessible.
Quiz suivant : Quiz 4 — API, temps réel, interop.