QCM : Sécurité et conception du SaaS (35 questions)
Questions et réponses du QCM
1. Un client demande une landing page pour sa marque. Que doit faire l’agent avant de la construire ?
Poser en un seul appel trois questions sur la marque, l’esthétique et les arguments de vente, puis choisir l’action attendue
Poser en un seul appel quatre questions sur la marque, l’esthétique, trois arguments de vente et l’action attendue
Poser en un seul appel quatre questions sur la marque, l’esthétique, les compétences de l’équipe et le budget
Poser les quatre questions en plusieurs appels, puis demander les détails esthétiques après le début de la construction
Poser en un seul appel quatre questions sur la marque, l’esthétique, trois arguments de vente et l’action attendue
Explication
Le processus exige un seul appel regroupant quatre questions : nom et objectif de la marque, direction esthétique, trois arguments de vente et action souhaitée des visiteurs. Les appels multiples fractionnent le processus, les compétences ne remplacent pas les arguments de vente et l’action attendue ne doit pas être omise.
2. Une équipe prépare un preset de landing page et doit vérifier ses règles visuelles fixes. Quelle configuration respecte ces exigences ?
Bruit SVG à 0,5 d’opacité, rayons de 2 à 3 rem et micro-interactions pour boutons et liens
Bruit SVG à 0,05 d’opacité, rayons de 1 à 2 rem et micro-interactions pour boutons et liens
Bruit SVG à 0,05 d’opacité, rayons de 2 à 3 rem et micro-interactions pour boutons et liens
Bruit SVG à 0,05 d’opacité, rayons de 2 à 3 rem et micro-interactions pour les boutons
Bruit SVG à 0,05 d’opacité, rayons de 2 à 3 rem et micro-interactions pour boutons et liens
Explication
Chaque preset doit conserver un overlay de bruit SVG à 0,05 d’opacité, des rayons de conteneurs de 2 à 3 rem et des micro-interactions pour les boutons comme pour les liens. Une opacité de 0,5 ou des rayons de 1 à 2 rem modifient les paramètres prescrits, tandis que l’omission des liens rend la configuration incomplète.
3. Quel ensemble décrit la structure prescrite d’une landing page cinématographique ?
Navbar flottante, hero plein écran, trois cartes Fonctionnalités interactives, À propos, trois cartes Protocole, Adhésion ou Tarification et pied de page
Navbar flottante, hero plein écran, trois cartes Fonctionnalités interactives, Philosophie, trois cartes de compétences, Adhésion ou Tarification et pied de page
Navbar fixe, hero plein écran, trois cartes Fonctionnalités interactives, Philosophie, trois cartes Protocole, Adhésion ou Tarification et pied de page
Navbar flottante, hero plein écran, trois cartes Fonctionnalités interactives, Philosophie, trois cartes Protocole, Adhésion ou Tarification et pied de page
Navbar flottante, hero plein écran, trois cartes Fonctionnalités interactives, Philosophie, trois cartes Protocole, Adhésion ou Tarification et pied de page
Explication
La structure associe une navbar flottante et un hero plein écran aux sections Fonctionnalités, Philosophie, Protocole et Adhésion ou Tarification, avant le pied de page. « À propos » appartient à une autre structure, les cartes de compétences ne remplacent pas les cartes Protocole, et la navbar prescrite est flottante.
4. Une personne demande la création de son CV en ligne. Quelles informations l’agent doit-il recueillir dans son appel initial ?
Nom et titre professionnel dans un premier appel, puis parcours, expériences et compétences dans des appels distincts
Nom et titre professionnel, direction esthétique, parcours en deux ou trois phrases, trois expériences et cinq compétences
Nom et titre professionnel, direction esthétique, action attendue des visiteurs, trois expériences et cinq compétences
Nom et titre professionnel, direction esthétique, parcours en deux ou trois phrases, deux expériences et cinq compétences
Nom et titre professionnel, direction esthétique, parcours en deux ou trois phrases, trois expériences et cinq compétences
Explication
La création du CV commence par un seul appel AskUserQuestion portant sur quatre éléments : identité professionnelle, direction esthétique, bref parcours, puis trois expériences et cinq compétences clés. Deux expériences ne respectent pas le nombre demandé, l’action des visiteurs relève d’une landing page et le recueil doit se faire en un seul appel.
5. Quelles sections doivent figurer dans la structure d’un CV en ligne, entre le hero et le pied de page ?
À propos, Expérience, Compétences, Philosophie et Contact
À propos, Expérience, Compétences, Formation et Tarification
À propos, Expérience, Compétences, Formation et Contact
À propos, Protocole, Compétences, Formation et Contact
À propos, Expérience, Compétences, Formation et Contact
Explication
Après la navbar et le hero, le CV présente À propos, Expérience, Compétences, Formation et Contact, puis le pied de page. Philosophie, Protocole et Tarification sont des sections associées à une landing page, et ne remplacent pas celles du CV.
6. Une équipe commence l’audit d’une application dont elle ne connaît pas encore les dépendances ni les chemins de traitement. Quelle démarche doit-elle entreprendre en premier ?
Analyser les seules routes API et reporter l’étude de l’architecture
Lire toute la base de code, modéliser l’architecture et tracer les entrées et flux de données
Examiner la configuration de déploiement sans suivre les flux de données
Corriger les failles les plus visibles avant de parcourir les fichiers
Lire toute la base de code, modéliser l’architecture et tracer les entrées et flux de données
Explication
La découverte commence par la lecture intégrale du code, la modélisation de l’architecture et le repérage des points d’entrée et des flux. Se limiter aux routes omet d’autres entrées, corriger avant d’avoir cartographié le système inverse la démarche, et examiner la configuration seule ne suffit pas.
7. Lors d’une recherche de secrets codés en dur, quel élément correspond à un motif à examiner dans le code ?
Un commentaire décrivant un mot de passe
Une variable commençant par NEXT_PUBLIC_
Un nom de fonction contenant le mot webhook
Une chaîne commençant par ghp_ ou Bearer
Une chaîne commençant par ghp_ ou Bearer
Explication
Les motifs ghp_ et Bearer font partie des chaînes à rechercher, au même titre que d’autres préfixes de clés et de jetons. NEXT_PUBLIC_ relève des préfixes de variables publiques, un nom de fonction n’est pas en soi un secret, et limiter la recherche aux mots de passe ignore les clés et jetons.
8. Un dépôt contient .env.production et .env.staging.local, tandis qu’un ancien fichier .env a été supprimé. Quelle vérification est conforme à l’audit ?
Exclure seulement .env et .env.local, puis ignorer l’historique Git
Exclure les fichiers présents dans .gitignore et écarter les fichiers supprimés
Exclure les motifs .env requis dans .gitignore et examiner l’historique Git pour l’ancien fichier
Examiner l’historique Git, sans vérifier les exclusions de .gitignore
Exclure les motifs .env requis dans .gitignore et examiner l’historique Git pour l’ancien fichier
Explication
L’audit vérifie l’exclusion de .env, .env.local, .env.production et .env*.local, ainsi que l’historique Git, où un ancien fichier commité peut encore exposer des secrets. Ignorer l’historique laisse ce risque intact, tandis qu’une vérification limitée des exclusions manque des variantes demandées.
9. Une application utilise Vite et stocke une clé secrète Stripe dans une variable d’environnement. Quel choix évite d’exposer cette clé au client ?
La déplacer vers une variable NEXT_PUBLIC_ destinée au navigateur
La placer dans une variable VITE_ pour que le client la lise
La conserver côté serveur sans préfixe VITE_
La placer dans une variable REACT_APP_ pour la rendre accessible à l’application
La conserver côté serveur sans préfixe VITE_
Explication
Les secrets réservés au serveur, notamment les secrets Stripe, ne doivent pas employer les préfixes publics des frameworks; avec Vite, il faut donc éviter VITE_. NEXT_PUBLIC_ et REACT_APP_ sont également des préfixes publics, et le stockage en variable d’environnement ne rend pas sûre une exposition au client.
10. Une migration a créé une table dans le schéma public, mais l’équipe a activé RLS seulement sur les tables créées dans l’interface principale. Que doit-elle faire pour cette nouvelle table ?
Vérifier et activer RLS sur cette table comme sur chaque table du schéma public
Vérifier RLS uniquement si la table contient des données personnelles
Créer une policy SELECT sans activer RLS sur la table
Considérer la table protégée du fait qu’elle provient d’une migration
Vérifier et activer RLS sur cette table comme sur chaque table du schéma public
Explication
L’audit vérifie l’activation de RLS sur chaque table du schéma public, y compris celles créées par migration ou dans l’éditeur SQL. L’origine de la table ne garantit pas sa protection, et une policy ne remplace pas l’activation de RLS.
11. Une policy autorise un utilisateur à insérer une ligne, mais ne vérifie pas que le user_id fourni lui appartient. Quelle modification correspond à la règle d’audit ?
Ajouter une clause WITH CHECK à une policy UPDATE seulement
Ajouter une policy SELECT sans contrôle du user_id à l’insertion
Ajouter une clause WITH CHECK à la policy SELECT
Ajouter une clause WITH CHECK à la policy INSERT
Ajouter une clause WITH CHECK à la policy INSERT
Explication
Les policies INSERT et UPDATE doivent inclure WITH CHECK afin de contrôler les valeurs autorisées, notamment le user_id à l’insertion et le transfert de propriété à la mise à jour. Une vérification de lecture ne contrôle pas les données insérées, et une policy UPDATE seule ne protège pas l’insertion.
12. Une policy RLS doit vérifier l’identité d’un utilisateur, mais son user_metadata peut être modifié par cet utilisateur. Quelle source d’identité doit-elle utiliser ?
auth.uid()
auth.jwt()->'user_metadata'
Un champ user_id transmis par le navigateur
Une valeur de profil modifiable par l’utilisateur
auth.uid()
Explication
auth.uid() fournit la source d’identité fiable pour les policies RLS; les métadonnées utilisateur peuvent être modifiées par l’utilisateur authentifié. Un champ de profil transmis ou modifiable par le client ne corrige pas ce problème, et user_metadata n’est pas une preuve d’identité fiable.
13. Lors d’un audit, le middleware d’authentification existe et s’exécute sur les routes protégées, mais son matcher ne couvre pas une nouvelle route sensible. Quel constat l’audit doit-il retenir ?
Le contrôle réussit, car le middleware existe et s’exécute sur certaines routes
Le contrôle réussit, car une route sensible nouvelle est protégée automatiquement
Le contrôle réussit, car le matcher doit couvrir les routes publiques seulement
Le contrôle échoue, car le matcher doit couvrir tous les chemins nécessaires
Le contrôle échoue, car le matcher doit couvrir tous les chemins nécessaires
Explication
L’audit vérifie à la fois l’existence et l’exécution du middleware sur les routes protégées, ainsi que la couverture de tous les chemins nécessaires par le matcher. Se fier à la seule existence du middleware, viser les routes publiques ou supposer une protection automatique ne répond pas à cette exigence.
14. Une application protège les routes en les ajoutant explicitement à une liste noire. Quelle modification réduirait le risque qu’une nouvelle route reste sans protection ?
Conserver la liste noire et définir les routes publiques comme exceptions
Adopter une liste blanche de routes protégées et rendre les autres publiques
Conserver la liste noire et y ajouter chaque nouvelle route protégée
Adopter le refus par défaut avec une liste blanche de routes publiques
Adopter le refus par défaut avec une liste blanche de routes publiques
Explication
Avec le refus par défaut, une liste blanche désigne les routes publiques et les nouvelles routes sont protégées automatiquement. Une liste noire exige d’ajouter les routes protégées, tandis qu’une liste blanche de routes protégées inverse le mécanisme décrit.
15. Une application Supabase doit autoriser une opération sensible côté serveur à partir d’un JWT reçu. Quelle méthode doit-elle utiliser pour vérifier ce jeton ?
supabase.auth.getSession(), qui valide le JWT auprès de Supabase
supabase.auth.getSession(), qui lit le JWT local sans le vérifier
supabase.auth.getUser(), qui lit le JWT local sans le vérifier
supabase.auth.getUser(), qui valide le JWT auprès de Supabase
supabase.auth.getUser(), qui valide le JWT auprès de Supabase
Explication
Pour une opération sensible côté serveur, getUser valide le JWT auprès des serveurs Supabase. getSession lit le jeton local sans le vérifier; l’attribuer à getUser ou prétendre qu’il valide le jeton à distance confond les deux méthodes.
16. Une équipe choisit où stocker les jetons de session afin qu’un script JavaScript injecté lors d’une attaque XSS ne puisse pas les lire. Quel stockage convient ?
Des cookies accessibles au JavaScript
Le stockage local du navigateur
Des cookies marqués httpOnly
Le stockage de session du navigateur
Des cookies marqués httpOnly
Explication
Les cookies httpOnly ne sont pas accessibles au JavaScript de la page, contrairement aux stockages local et de session ainsi qu’aux cookies accessibles aux scripts. Le choix du stockage local ou de session repose donc sur la confusion documentée concernant leur exposition au JavaScript.
17. Une route API reçoit une requête qui demande des données utilisateur et commence par interroger la base de données. À quel moment doit-elle vérifier l’authentification ?
Avant tout traitement de la requête
Après la validation des entrées de la requête
Après la lecture des données demandées
Après la détection d’une erreur de traitement
Avant tout traitement de la requête
Explication
Chaque route API qui traite des données utilisateur doit vérifier l’authentification avant tout traitement. La repousser après une lecture ou une erreur inverse l’ordre requis, et la validation des entrées ne remplace pas cette vérification.
18. Une route API reçoit un montant envoyé par le navigateur, après vérification de ce montant dans un formulaire. Quelle mesure protège la route contre une entrée falsifiée ?
Afficher une erreur au client sans examiner l’entrée reçue
Se fier au contrôle déjà effectué dans le formulaire du navigateur
Vérifier uniquement que le montant reçu est une chaîne de caractères
Valider l’entrée côté serveur avec une bibliothèque de validation par schéma
Valider l’entrée côté serveur avec une bibliothèque de validation par schéma
Explication
Une route API doit valider ses entrées côté serveur à l’aide d’une bibliothèque de validation par schéma. La validation du formulaire relève de l’expérience utilisateur, et un simple contrôle de type ne remplace pas cette validation.
19. Une requête authentifiée demande de modifier le profil d’un utilisateur et contient un champ « userId » différent de l’identité de la session. Quelle identité l’opération doit-elle utiliser ?
L’identité indiquée dans le champ « userId » du corps
L’identité choisie par le client après authentification
L’identité obtenue en combinant le corps et la session
L’identité dérivée de la session authentifiée ou du JWT
L’identité dérivée de la session authentifiée ou du JWT
Explication
Pour une opération d’écriture, l’identité fiable est celle dérivée de la session authentifiée ou du JWT. Le champ « userId » fourni par le client peut être falsifié; le combiner avec la session ne le rend pas fiable.
20. Une application affiche en HTML un commentaire fourni par un utilisateur au moyen de « dangerouslySetInnerHTML ». Quelle mesure réduit le risque de XSS ?
Nettoyer le commentaire après son affichage dans la page
Nettoyer le commentaire avant de le rendre en HTML
Vérifier que l’auteur du commentaire est authentifié
Masquer le commentaire lorsqu’il contient une balise HTML
Nettoyer le commentaire avant de le rendre en HTML
Explication
Le contenu utilisateur rendu en HTML doit être nettoyé contre les attaques XSS, notamment avec « dangerouslySetInnerHTML ». L’authentification de l’auteur ne neutralise pas son contenu, et un nettoyage après affichage intervient trop tard.
21. Une équipe veut que les installations effectuées dans son dépôt résolvent les mêmes versions de dépendances et évitent les changements silencieux de versions. Quelle mesure doit-elle prendre ?
Exécuter un audit des dépendances à chaque modification
Commiter un fichier de verrouillage des dépendances
Commiter uniquement le manifeste des dépendances
Relancer npm install avant chaque déploiement
Commiter un fichier de verrouillage des dépendances
Explication
Un lockfile commité fixe les versions résolues et évite que npm install ne récupère silencieusement des versions différentes. Le manifeste décrit les dépendances, tandis qu’un audit recherche des vulnérabilités sans fixer leurs versions.
22. Lors d’un examen du projet, un paquet récemment publié présente très peu de téléchargements et un nom proche de celui d’une dépendance connue. Quelle décision est la plus appropriée ?
Évaluer le paquet d’après sa date de publication, sans tenir compte des autres indices
Examiner attentivement le paquet, car ces indices peuvent signaler un logiciel malveillant
Ignorer le paquet, car le faible nombre de téléchargements suffit à établir son innocuité
Conserver le paquet, car un nom proche confirme son lien avec la dépendance connue
Examiner attentivement le paquet, car ces indices peuvent signaler un logiciel malveillant
Explication
Un nombre de téléchargements anormalement faible, une publication récente et un nom ressemblant à celui d’un paquet connu sont des signaux qui justifient un examen. La proximité du nom ne prouve pas la légitimité, et l’âge ou la popularité pris isolément ne règle pas la question.
23. Une route API déclenche un appel payant à un fournisseur de SMS. Quelle mesure réduit le risque de dépenses provoquées par l’envoi répété de requêtes ?
Appliquer des contrôles d’accès aux fichiers stockés
Restreindre les origines CORS autorisées sur la route
Limiter le débit des seules routes de connexion
Mettre en place une limitation de débit sur la route
Mettre en place une limitation de débit sur la route
Explication
La limitation de débit des routes qui sollicitent des services externes payants aide à empêcher qu’un spam d’endpoint ne fasse exploser la facture. Limiter les seules routes de connexion néglige les appels payants, tandis que CORS et les contrôles de fichiers répondent à d’autres risques.
24. Une application expose des routes de connexion, d’inscription, de réinitialisation de mot de passe et de vérification par code à usage unique. Quelle protection doit être prévue pour ces routes ?
Une limitation de débit contre les tentatives répétées
Une restriction des origines CORS pour les requêtes
Une validation MIME des données envoyées
Une limitation de débit réservée aux appels payants
Une limitation de débit contre les tentatives répétées
Explication
Les endpoints d’authentification doivent être limités en débit pour contrer la force brute et le bourrage d’identifiants. Réserver cette mesure aux appels payants confond deux catégories de routes, et CORS ou la validation MIME ne freinent pas ces tentatives.
25. Après chaque déploiement, le compteur de requêtes d’une API repart de zéro, car il est conservé en mémoire sur le serveur. Quelle modification rendrait la limitation de débit plus fiable ?
Gérer les requêtes par une liste d’origines CORS
Appliquer la limite côté serveur avec Redis ou Upstash
Conserver la limite en mémoire avec une durée prolongée
Appliquer la limite dans le frontend avec un délai anti-rebond
Appliquer la limite côté serveur avec Redis ou Upstash
Explication
Une limitation côté serveur appuyée par un stockage fiable comme Redis ou Upstash conserve mieux les compteurs qu’un stockage mémoire réinitialisé au déploiement. Allonger la durée mémoire ne supprime pas cette réinitialisation, et un délai anti-rebond frontend ne constitue pas une protection serveur fiable.
26. Un utilisateur téléverse un fichier nommé « photo.jpg », mais son contenu est celui d’un exécutable. Quelle vérification protège correctement le serveur ?
Valider côté navigateur le type MIME et la taille
Valider côté serveur le type MIME et la taille
Valider côté serveur le type MIME sans contrôler la taille
Valider côté serveur l’extension et la taille
Valider côté serveur le type MIME et la taille
Explication
Le serveur doit vérifier le type et la taille du fichier, et le type MIME est plus fiable que l’extension, que l’utilisateur peut modifier. Se fier à « .jpg » laisse passer un contenu trompeur, une validation frontend peut être contournée, et ignorer la taille omet une vérification requise.
27. Une plateforme stocke des photos de profil visibles publiquement et des documents privés. Quelle organisation des permissions convient à ces deux usages ?
Adapter les contrôles d’accès à l’extension des fichiers
Appliquer aux deux catégories les contrôles des fichiers publics
Adapter les contrôles d’accès à l’usage public ou privé
Appliquer aux deux catégories les contrôles des documents privés
Adapter les contrôles d’accès à l’usage public ou privé
Explication
Les permissions doivent correspondre à l’usage : une photo publique et un document privé appellent des politiques d’accès différentes. Traiter les deux catégories comme publiques ou privées ignore cette distinction, et l’extension ne détermine pas le niveau de confidentialité.
28. Quelles données le tableau de bord du SaaS de facturation doit-il afficher ?
Le nombre total de factures, le montant facturé, le montant payé et le montant en attente
Le nombre de clients, le montant facturé, le montant payé et le montant en attente
Le nombre total de factures, le montant facturé et le montant en attente
Le nombre total de factures, le montant facturé, le nombre de factures payées et le montant en retard
Le nombre total de factures, le montant facturé, le montant payé et le montant en attente
Explication
Le tableau de bord réunit le nombre total de factures et les trois indicateurs financiers : montants facturé, payé et en attente. Le nombre de clients relève de la gestion des clients, le nombre de factures payées n’est pas le montant payé, et les deux autres réponses omettent un indicateur requis.
29. Une entrepreneuse crée une facture dans le SaaS. Quelles informations le formulaire doit-il lui permettre de renseigner ?
Le client, les dates d’émission et de paiement, puis la description et le montant total de chaque ligne
Le client, les dates d’émission et d’échéance, puis la description, la quantité et le prix unitaire de chaque ligne
Le client et ses coordonnées complètes, la date d’émission et la description de chaque ligne
Le client, les dates d’émission et d’échéance, puis la description et le montant total de chaque ligne
Le client, les dates d’émission et d’échéance, puis la description, la quantité et le prix unitaire de chaque ligne
Explication
La création d’une facture prévoit le choix d’un client, les dates d’émission et d’échéance, et des lignes composées d’une description, d’une quantité et d’un prix unitaire. Saisir toutes les coordonnées du client, remplacer l’échéance par la date de paiement ou ne saisir qu’un montant total confond ces éléments.
30. Lors de la création d’une facture, quelle configuration de calcul et d’enregistrement le SaaS doit-il appliquer ?
Calculer automatiquement une TVA de 18 %, afficher les montants en FCFA arrondis à l’entier et proposer le brouillon ou l’envoi
Calculer automatiquement une TVA de 18 %, afficher les montants en FCFA avec décimales et proposer le brouillon ou l’envoi
Calculer automatiquement une TVA de 18 %, afficher les montants en FCFA arrondis à l’entier et proposer l’envoi
Calculer automatiquement une TVA de 20 %, afficher les montants en FCFA arrondis à l’entier et proposer le brouillon ou l’envoi
Calculer automatiquement une TVA de 18 %, afficher les montants en FCFA arrondis à l’entier et proposer le brouillon ou l’envoi
Explication
La facture applique automatiquement une TVA de 18 %, affiche les montants en FCFA arrondis à l’entier et peut être enregistrée comme brouillon ou envoyée. Un taux de 20 %, l’affichage avec décimales ou l’absence d’enregistrement en brouillon ne respecte pas cette configuration.
31. Une équipe organise le développement du SaaS selon le parcours prévu. Quel enchaînement respecte les étapes de réalisation ?
Fonctionnalités inspirées des captures, interactivité avec données locales, contrôle de bout en bout, Supabase et tests, authentification, landing page puis déploiement et nouveau test
Fonctionnalités inspirées des captures, authentification, interactivité avec données locales, Supabase et tests, landing page, contrôle de bout en bout puis déploiement et nouveau test
Landing page, fonctionnalités inspirées des captures, interactivité avec données locales, Supabase et tests, authentification, contrôle de bout en bout puis déploiement et nouveau test
Fonctionnalités inspirées des captures, interactivité avec données locales, Supabase et tests, authentification, landing page, contrôle de bout en bout puis déploiement et nouveau test
Fonctionnalités inspirées des captures, interactivité avec données locales, Supabase et tests, authentification, landing page, contrôle de bout en bout puis déploiement et nouveau test
Explication
Le parcours commence par les fonctionnalités inspirées des captures, puis les rend interactives avec des données locales avant d’ajouter Supabase et les tests. L’authentification et la landing page suivent, puis vient le contrôle de bout en bout avant le déploiement et un nouveau test ; les autres parcours déplacent ces étapes.
32. Une équipe met en place la page de factures et son écran de détail. Quel ensemble d’actions doit-elle prévoir ?
Filtrer par montant, rechercher par nom de client, ouvrir le détail, changer le statut, modifier ou supprimer après confirmation
Filtrer par statut, rechercher par nom de client, ouvrir le détail, changer le statut, modifier ou supprimer après confirmation
Filtrer par statut, rechercher par montant, ouvrir le détail, changer le statut, modifier ou supprimer après confirmation
Filtrer par statut, rechercher par nom de client, ouvrir le détail, changer le statut, modifier ou supprimer sans confirmation
Filtrer par statut, rechercher par nom de client, ouvrir le détail, changer le statut, modifier ou supprimer après confirmation
Explication
La page de factures comprend des filtres par statut, une recherche par nom de client et l’accès au détail ; celui-ci permet de changer le statut, de modifier ou de supprimer après confirmation. La recherche par montant substitue un autre critère, tandis que la suppression sans confirmation omet une protection prévue.
33. Vous devez améliorer une application existante dont vous ne connaissez pas encore l’organisation. Quelle démarche faut-il entreprendre avant de choisir une direction visuelle ?
Examiner les pages et les composants, sans consulter les styles ni les ressources
Examiner la structure, les styles, les composants, les pages, le package.json et les ressources
Choisir une palette, puis modifier les pages avant d’inspecter les fichiers existants
Consulter le package.json, puis appliquer un thème générique sans explorer le projet
Examiner la structure, les styles, les composants, les pages, le package.json et les ressources
Explication
L’analyse préalable porte sur l’ensemble du projet, notamment sa structure, ses styles, ses composants, ses pages, son package.json, ses assets et ses polices. Commencer par la palette inverse l’ordre, ignorer styles et ressources rend l’analyse incomplète, et s’en tenir au package.json ne suffit pas.
34. Une équipe reprend une application existante dont les couleurs, les espacements et les composants sont incohérents. Quelle stratégie de design convient le mieux ?
Poser d’abord les questions de cadrage prévues pour un projet sans code
Garder chaque choix graphique actuel sans établir de règles communes
Créer un système cohérent en s’appuyant sur les éléments existants pertinents
Conserver le système de design existant et se limiter à des retouches
Créer un système cohérent en s’appuyant sur les éléments existants pertinents
Explication
Un projet existant mais incohérent appelle la création d’un système de design cohérent, en tenant compte de ce qui mérite d’être conservé. Les questions de cadrage visent un projet sans code, les retouches seules supposent un système déjà établi, et maintenir toutes les incohérences empêche l’harmonisation.
35. Une table protégée par RLS doit permettre aux utilisateurs de lire les lignes auxquelles ils ont droit, sans autoriser de nouvelles insertions. Quelle configuration de policies convient ?
Des policies SELECT et INSERT adaptées
Une policy SELECT adaptée, sans policy INSERT
Une policy INSERT adaptée, sans policy SELECT
Aucune policy, puisque RLS est activé
Une policy SELECT adaptée, sans policy INSERT
Explication
Une policy SELECT doit autoriser les lectures souhaitées afin qu’elles ne renvoient pas silencieusement des résultats vides; une policy INSERT n’est requise que si des insertions sont autorisées. La policy INSERT ne règle pas les lectures, et l’activation de RLS sans policy SELECT ne les autorise pas.
Révisez avec les flashcards
Mémorisez les réponses avec 84 flashcards sur Sécurité et conception du SaaS.
Quelles informations l’agent doit-il demander en un appel pour une landing page ?
Le nom et l’objectif de la marque, une direction esthétique, trois arguments de vente et l’action attendue des visiteurs.
Quelle opacité doit avoir l’overlay de bruit SVG des presets ?
0,05.
Quels rayons doivent avoir les conteneurs des presets ?