Skip to Content
SymfonyPartie 20 — Quiz (auto-évaluation)Quiz 3 — Full-stack & sécurité

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.