Questions Jury Flashcards

1
Q

Pouvez-vous lister et définir les principaux concepts de la POO ?

A
  • Encapsulation : C’est le fait de contrôler les accès aux données avec des attributs privés et des getters/setters (accesseurs / mutateurs)
  • Héritage : permet de définir une classe qui hérite des attributs et méthodes d’une autre classe.
  • Polymorphisme : permet de redéfinir une méthode héritée, et de ce fait, pouvoir l’utiliser de manière différente en fonction de l’objet qui l’appelle.
  • Abstraction : permet de se concentrer sur les caractéristiques essentielles d’un objet tout en cachant les détails d’implémentation.
  • Interface : permet de spécifier un comportement que les classes doivent implémenter
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Comment avez-vous géré la sécurité de votre application ?

A
  • Gestion des authentifications via JWT (JSON Web Token)
  • Durée de validité limitée des tokens JWT
  • Format du mot de passe robuste
  • Stockage en base de données des mots de passe des utilisateurs hachés avec BCrypt
  • Gestion des autorisations avec un système de rôles et permissions
  • Utilisation du protocole HTTPS pour chiffrer les échanges entre le client et le serveur
  • Validation des données côté client avec les fomulaires Angular
  • Validation des données côté serveur avec les annotations dédiées
  • JPA et les requêtes paramétrées protège l’application contre les injections SQL
  • Gestion des CORS et protections CSRF avec Spring Security
  • Utilisation de variables d’environnement pour les donées sensibles
  • Protection de la base de données avec des droits d’accès stricts
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

comment avez-vous organisé le travail en équipe ?

A
  • Méthodologie Agile avec Scrum (sprints, réunions régulières telles que daily, rétrospective, revue de sprint)
  • Utilisation d’outils de gestion de projet tels que Trello / Jira / GitHub Projects pour suivre l’avancement des tâches et prioriser les développements.
  • Découpage des tâches en user stories au sein d’un product backlog, associées à des critères d’acceptation et estimées en points de complexité.
  • Mise en place d’un workflow git (branches main, develop, feature/*)
  • Répartition des rôles (back-end, front-end, DevOps, tests, UX/UI, PO, SM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quels mécanismes avez-vous mis en place pour gérer les erreurs dans votre application ?

A

BACK END :
- Gestion centralisée des exceptions avec Spring Boot et Global Exception Handler
- Gestion des Exceptions personnalisées (ResourceNotFoundException, UnauthorizedException, etc.)
- Codes HTTP appropriés
FRONT END :
- Messages d’erreur utilisateur personnalisés via des notifications
- Redirection vers une page 404 pour les ressources non trouvées.
- Redirection vers la page de connexion en cas d’erreur 401 (non authentifié).
- Message d’erreur lors du remplissage des formulaires

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Comment avez-vous élaboré les maquettes de votre application ?

A

1- Analyse des besoins utilisateurs
2- Identification des fonctionnalités clés
3- Création du Product Backlog
4- Création de Wireframes pour représenter l’agencement général des éléments sur chaque page
5- Définition d’une charte graphique en prenant en compte l’identité visuelle du produit et les règles d’accessibilité (contraste, taille des polices, couleurs adaptées aux dyslexiques et daltoniens)
6- Design des maquettes pour un rendu visuel plus détaillé : UI
7- Responsive Design pour s’asurer que l’application s’adapte sur différents types d’écrans
8- Création des prototypes interactifs pour tester le parcours utilisateur et d’ajuster les éléments visuels : UX
++- Décomposition des interfaces en composants UI (boutons, cartes, formulaires) pour faciliter l’implémentation dans le framework Angular.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Comment avez-vous installé et configuré votre environnement de travail pour ce projet ?

A
  • Outils et IDE : VS Code et extension pour le front - IntelliJ pour le back
  • Java : Version installée (Java 21), installation du JDK, utilisation de Maven.
  • Angular : Installation de Node.js, npm et Angular CLI
  • Gestion du code : Utilisation de Git, gestion des branches, workflow collaboratif.
  • Base de données : installation, configuration et interaction avec des outils comme MySQL Workbench ou via IDE
  • Docker : Utilisation de conteneurs pour isoler l’environnement, Docker Compose pour orchestrer les services.
  • Automatisation : Mise en place de tests, intégration continue (CI/CD), qualité du code.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment avez-vous développé les interfaces utilisateur de votre application ?

A
  • Technologie utilisée : Angular, qui permet une architecture basée sur des composants réutilisables.
  • Ergonomie (UX/UI) : charte graphique, design system (framework CSS)
  • Accessibilité (contrastes, navigation clavier, attributs ARIA)
  • Responsive Design : interface adaptative (CSS Flexbox/Grid et media queries, unité relative)
  • Identification des éléments récurrents pour découper l’UI en composants réutilisables (ex. boutons, cartes, modals, formulaires).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quels sont les outils indispensables à ton environnement de développement ?

A

Un IDE adapté (ex : IntelliJ, VS Code), un JDK, un gestionnaire de dépendances, un serveur de base de données, un terminal, Git.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment assures-tu la compatibilité entre ton environnement local et l’environnement de production ?

A

En utilisant des conteneurs Docker au sein desquels sont configurées les mêmes versions des outils et dépendances.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Pourquoi utiliser un gestionnaire de versions comme Git ?

A

Pour suivre l’évolution du code, collaborer efficacement en équipe, et revenir à des versions antérieures si besoin.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Pourquoi utiliser Docker pour un projet ?

A

Pour garantir un environnement identique sur tous les postes et simplifier le déploiement en production.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quels fichiers sont nécessaires pour configurer un conteneur Docker ?

A

Un Dockerfile pour définir l’image et un docker-compose.yml pour orchestrer plusieurs conteneurs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quelle est la différence entre le JDK et la JVM ?

A

La JVM (Java Virtual Machine) exécute le code Java. Le JDK (Java Development Kit) contient la JVM et les outils nécessaires au développement, comme le compilateur javac.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quels sont les prérequis pour installer et exécuter un projet Angular ?

A

Node.js (avec npm ou yarn), Angular CLI (npm install -g @angular/cli), et un navigateur pour tester l’application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Comment t’assures-tu que ton interface respecte la maquette du dossier de conception ?

A

En utilisant des outils comme Figma ou Adobe XD, en respectant les couleurs, typographies et espacements définis.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Comment rends-tu une interface responsive ?

A
  • Flexbox / Grid
  • media queries,
  • unités relatives
  • frameworks comme Bootstrap ou Angular Material.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Pourquoi est-il important d’adapter une interface à différents types de supports ?

A

Pour améliorer l’expérience utilisateur (UX) et garantir l’accessibilité sur mobile, tablette et desktop.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Quelles règles d’accessibilité dois-tu respecter lors du développement d’une interface ?

A

Contraste suffisant, textes alternatifs pour les images, navigation clavier, aria-labels.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Quelles obligations le RGPD impose-t-il pour une interface utilisateur ?

A

Consentement des cookies, gestion des données personnelles, mentions légales accessibles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Comment gères-tu un événement utilisateur dans Angular ?

A

Avec le event binding : <button (click)=”handleClick()”> et en implémentant la méthode dans le component.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Comment récupères-tu des données d’une API dans une interface Angular ?

A

Avec le service HttpClient et la méthode get(), en s’abonnant avec .subscribe(), ou avec async pipe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Pourquoi et comment tester une interface utilisateur ?

A

Pour éviter les régressions avec des tests unitaires et des tests d’intégration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Quels mécanismes peux-tu mettre en place pour sécuriser une interface ?

A

Validation des entrées (Form Validators), gestion des erreurs (try/catch), authentification (JWT)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Quels sont les principes SOLID en programmation orientée objet ?

A

Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Pourquoi et comment appliquer le principe de l’encapsulation ?
Pour protéger les données et contrôler leur accès via des modificateurs d’accès (private, protected, public).
26
Comment sécuriser un composant métier dans une application web ?
En validant les entrées (DTO, @Valid en Spring Boot), en gérant les permissions (@PreAuthorize) et en évitant les injections SQL (JPA, PreparedStatement).
27
Quelles sont les principales failles de sécurité en développement web ?
XSS (Cross-Site Scripting), CSRF (Cross-Site Request Forgery), Injection SQL, Brute Force, etc.
28
Qu’est-ce qu’un ORM et pourquoi l’utiliser ?
Object-Relational Mapping permet de manipuler une base avec des objets (Hibernate pour Java, TypeORM pour Node.js).
29
Pourquoi réaliser des tests unitaires sur un composant métier ?
Pour garantir la fiabilité du code et éviter les régressions lors des évolutions (JUnit, Mockito).
30
Qu’est-ce que le Test-Driven Development (TDD) ?
Une approche où on écrit d’abord les tests avant le code, pour s’assurer que chaque fonctionnalité est bien couverte.
31
Quels sont les quatre piliers de la Programmation Orientée Objet (POO) ?
Encapsulation, Héritage, Polymorphisme, Abstraction.
32
Comment fonctionne le polymorphisme en Java ?
Un même nom de méthode peut avoir plusieurs comportements
33
Pourquoi utilise-t-on des interfaces en POO ?
Pour définir un contrat de méthodes sans implémentation, permettant l’abstraction et la flexibilité du code.
34
Dans quel cas utiliser une classe abstraite plutôt qu’une interface ?
Une classe abstraite est utile lorsque plusieurs classes partagent un comportement commun avec du code à réutiliser. Une interface est préférable pour garantir une flexibilité maximale sans imposer d’implémentation.
35
Pourquoi dit-on que l’héritage favorise la réutilisation du code ?
Parce qu’une classe enfant hérite automatiquement des attributs et méthodes de la classe parent, évitant la duplication du code.
36
Comment empêcher une classe d’être héritée en Java ?
En ajoutant le mot-clé final devant la déclaration de la classe
37
Comment garantit-on l’encapsulation des données en Java ?
En déclarant les attributs private et en utilisant des getters et setters pour contrôler l’accès et la modification des données.
38
Une classe peut-elle implémenter plusieurs interfaces en Java ?
Oui, une classe peut implémenter plusieurs interfaces, contrairement à l’héritage qui ne permet qu’une seule classe parent.
39
Comment sécuriser une API REST ?
En utilisant JWT (JSON Web Token), OAuth2, API Keys, et en limitant les accès avec des rôles et permissions (@PreAuthorize en Spring Boot).
40
Pourquoi et comment valider les entrées utilisateur dans une API ?
Pour éviter les injections SQL/XSS et garantir des données cohérentes. En Java, on utilise DTO et @Valid avec des annotations comme @NotBlank et @Size.
41
Pourquoi utiliser un format JSON pour les réponses d’une API REST ?
JSON est léger, facile à lire, et compatible avec de nombreux langages (JavaScript, Java, Python...).
42
Comment planifies-tu les tâches de développement d’un projet ?
En utilisant un outil de gestion de projet (Jira, Trello, Azure DevOps) et en découpant les tâches en sprints ou phases.
43
Quelle est la différence entre une gestion de projet séquentielle et Agile ?
Séquentielle (Cycle en V) : chaque phase est validée avant la suivante. Agile : le projet évolue par itérations, avec des livraisons fréquentes.
44
Quels outils peux-tu utiliser pour gérer un projet en équipe ?
Jira, Trello, GitHub Projects, Notion, Confluence pour la documentation et Slack, Teams pour la communication.
45
Qu’est-ce qu’un daily meeting en Agile ?
Une réunion courte (15 min max) où chaque membre partage ce qu’il a fait, ce qu’il va faire et s’il a des blocages.
46
Comment assurer la qualité du code dans un projet ?
En appliquant des revues de code, des tests automatisés, et en suivant des normes de développement (Clean Code).
47
Pourquoi est-il important de rédiger de la documentation technique dans un projet ?
Pour faciliter la compréhension du code, l’intégration des nouveaux développeurs et la maintenance de l’application.
48
Quelle est la différence entre un use case et une user story ?
Un use case décrit un scénario détaillé d’interaction entre l’utilisateur et le système. Une user story est une description concise du besoin utilisateur : "En tant que [utilisateur], je veux [fonctionnalité] pour [objectif]".
49
Pourquoi réaliser des maquettes avant de coder ?
Pour valider l’interface avec les utilisateurs, éviter des erreurs de conception et faciliter le développement.
50
Quels principes ergonomiques faut-il respecter pour une bonne expérience utilisateur ?
Simplicité, lisibilité, contrastes adaptés, navigation intuitive, et prise en compte des besoins spécifiques (accessibilité, dyslexie, daltonisme, etc.).
51
Quelles obligations légales dois-tu respecter lors de la conception d’une interface ?
RGPD (gestion des données personnelles), RGAA (accessibilité des contenus), mentions légales et CGU.
52
Comment améliorer l’accessibilité d’une interface ?
En respectant les normes WCAG / RGAA, en utilisant des balises ARIA, en garantissant un bon contraste et une navigation clavier.
53
Que contient un dossier de conception ?
Analyse des besoins, maquettes, schéma des écrans, contraintes techniques, règles UX/UI, et modèle de données.
54
Quelle est la différence entre un wireframe et une maquette ?
Un wireframe est un schéma simplifié qui représente la structure et l’agencement des éléments d’une interface, sans couleurs ni styles. Une maquette est une version visuelle détaillée qui inclut la charte graphique.
55
Quels éléments composent une charte graphique ?
Les couleurs, les typographies, les icônes, les boutons, les espacements et les guides d’utilisation pour assurer une cohérence visuelle.
56
Quelle est la différence entre une maquette et un prototype ?
Une maquette est une image statique du design, tandis qu’un prototype est interactif et permet de simuler la navigation et le comportement de l’application.
57
Quelle est la différence entre UI et UX ?
UI (User Interface) concerne le design visuel et l’ergonomie des interfaces. UX (User Experience) s’attache à l’expérience utilisateur, la facilité d’utilisation et la fluidité de la navigation.
58
Quel est l’intérêt d’une architecture en couches ?
Séparation des responsabilités, meilleure maintenabilité et scalabilité.
59
Quelle est la différence entre une architecture monolithique et une architecture en microservices ?
Monolithique : une seule application qui gère tout. Microservices : des services indépendants qui communiquent entre eux via des API.
60
Comment sécuriser une architecture logicielle ?
Authentification et autorisation (JWT, OAuth2), chiffrement des données, validation des entrées
61
Quels outils peux-tu utiliser pour modéliser une architecture logicielle ?
UML (Diagramme de classes, séquence)
62
Quels principes d’éco-conception peux-tu appliquer dans une architecture logicielle ?
Minimiser les requêtes, réduire la consommation mémoire, optimiser les algorithmes, limiter le stockage des données inutiles.
63
Quelles sont les principales couches d’une architecture logicielle multicouche d'une application backend ?
- Controller : gère les requêtes HTTP et retourne les réponses. - Service : applique la logique métier. - Repository : interagit avec la base de données. - Base de données : stocke les informations.Cette structure suit le modèle MVC et permet une bonne séparation des responsabilités.
64
Quelle est la différence entre une clé primaire et une clé étrangère ?
Clé primaire : identifie de manière unique une ligne d’une table. Clé étrangère : référence une clé primaire d’une autre table pour assurer l’intégrité référentielle.
65
Comment protéger une base de données contre les injections SQL ?
En utilisant des requêtes préparées (PreparedStatement en Java)
66
Quelles sont les principales étapes de la méthode Merise pour concevoir une base de données ?
MCD (Modèle Conceptuel de Données) : définit les entités, associations et attributs. MLD (Modèle Logique de Données) : traduit le MCD en tables et relations. MPD (Modèle Physique de Données) : implémentation dans un SGBD avec SQL.
67
Quelle est la différence entre une association 1-1, 1-N et N-N dans Merise ?
1-1 : Un élément A est lié à un seul élément B. 1-N : Un élément A est lié à plusieurs éléments B, mais chaque B est lié à un seul A. N-N : Plusieurs éléments A sont liés à plusieurs éléments B (nécessite une table de jointure).
68
Comment créer une base de données en SQL ?
```sql CREATE DATABASE ma_base ```
69
Comment créer une table avec une clé primaire et une clé étrangère ?
CREATE TABLE utilisateurs ( id INT AUTO_INCREMENT PRIMARY KEY, nom VARCHAR(100) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL ); CREATE TABLE commandes ( id INT AUTO_INCREMENT PRIMARY KEY, utilisateur_id INT NOT NULL, montant DECIMAL(10,2) NOT NULL, FOREIGN KEY (utilisateur_id) REFERENCES utilisateurs(id) );
70
Pourquoi ne faut-il pas utiliser root pour les accès à la base de données ?
- Principe du moindre privilège : root a tous les droits, ce qui augmente le risque en cas de faille ou d’attaque. - Sécurité des accès : Si un attaquant obtient les identifiants, il peut supprimer ou modifier toute la base. - Meilleure gestion des permissions : On peut créer un utilisateur avec des droits limités
71
Quelle est la différence entre une base de données SQL et NoSQL ?
- SQL : structure relationnelle avec tables et schéma fixe. - NoSQL : flexible, stockage sous forme de documents (MongoDB), clé-valeur (Redis), colonnes larges (Cassandra) ou graphe (Neo4j).
72
Pourquoi faut-il toujours valider les entrées utilisateur avant d’insérer des données en base ?
Pour éviter les injections SQL/XSS, assurer la cohérence des données.
73
Pourquoi intégrer l’authentification et la gestion des accès dans les composants d’accès aux données ?
Pour éviter des fuites de données, restreindre l’accès aux seuls utilisateurs autorisés et empêcher les accès non sécurisés.
74
Comment JPA crée-t-il la base et les tables dans Spring Boot ?
Avec la propriété spring.jpa.hibernate.ddl-auto dans le fichier de configuration application.properties (create, update, validate, none).
75
Comment accéder aux données avec JPA dans Spring Boot ?
En créant une interface JpaRepository, qui fournit des méthodes comme save(), findById(), delete().
76
Comment configurer la connexion à une base MySQL avec Spring Boot ?
En configurant l'url de connexion, l'identifiant et le mot de passe dans le fichier application.properties.
77
Comment JPA fait-il le lien entre une classe Java et une table en base de données ?
JPA utilise l’annotation @Entity pour indiquer qu’une classe Java correspond à une table. Par défaut, le nom de la classe devient le nom de la table, mais on peut le personnaliser avec @Table(name = "nom_table"). Chaque attribut correspond à une colonne, et @Id définit la clé primaire.
78
Qu’est-ce qu’un plan de tests et pourquoi est-il important ?
Un document qui décrit les tests à effectuer pour vérifier que l’application fonctionne comme prévu et éviter les régressions.
79
Quelle est la différence entre un test unitaire et un test d’intégration ?
Test unitaire : vérifie une fonction ou classe isolée. Test d’intégration : teste l’interaction entre plusieurs composants.
80
Comment créer un environnement de test ?
En utilisant une base de données de test (ex: H2 pour Spring Boot), des données fictives, et un environnement isolé (Docker).
81
Quelle est la différence entre un test manuel et un test automatisé ?
Manuel : exécuté par un humain, utile pour l’UI et l’expérience utilisateur.Automatisé : exécuté par un programme, rapide et fiable sur de grandes séries de tests.
82
Qu’est-ce qu’un test de charge ?
Un test qui simule un grand nombre d’utilisateurs pour évaluer la performance et la scalabilité d’une application.
83
Que faire si un test échoue ?
Analyser la cause, identifier le bug, le corriger, et exécuter à nouveau les tests pour vérifier la correction.
84
Qu’est-ce que le déploiement d’une application ?
C’est le processus de mise en ligne d’une application sur un serveur pour qu’elle soit accessible aux utilisateurs.
85
Quelle est la différence entre un serveur et un hébergeur ?
Un serveur est une machine qui exécute l’application, un hébergeur (ex: AWS, OVH) fournit l’infrastructure pour déployer les serveurs.
86
Qu’est-ce qu’un DNS et quel est son rôle ?
Un DNS (Domain Name System) traduit un nom de domaine en adresse IP, permettant aux utilisateurs d’accéder à un site web.
87
Qu’est-ce qu’un reverse proxy et pourquoi l’utiliser ?
C’est un serveur intermédiaire (ex : Nginx, Traefik) qui redirige les requêtes vers les bons services, protège contre les attaques et optimise le trafic.
88
Qu’est-ce que DevOps et pourquoi l’utiliser ?
Une approche qui automatise et accélère le déploiement des applications en rapprochant les équipes développement (Dev) et opérations (Ops).
89
Quelle est la différence entre Intégration Continue (CI) et Déploiement Continu (CD) ?
CI : Automatisation des tests et de l’intégration du code.CD : Automatisation du déploiement jusqu’en production.
90
Quels outils sont utilisés pour la CI/CD ?
GitHub Actions, GitLab CI/CD...
91
Pourquoi utiliser Docker dans une démarche DevOps ?
Pour standardiser l’environnement, assurer la portabilité et simplifier le déploiement avec des conteneurs.
92
Qu’est-ce que docker-compose et pourquoi l’utiliser ?
Un outil pour orchestrer plusieurs conteneurs et simplifier le déploiement d’une stack complète (ex : API + BDD).
93
Pourquoi automatiser les tests dans une CI/CD ?
Pour détecter rapidement les bugs, assurer la qualité du code et éviter les régressions.
94
Que contient un fichier CI/CD (.yaml) pour GitHub Actions ?
Il définit les étapes du pipeline : build, tests, analyse du code, déploiement.
95
Pourquoi doit-on valider les données côté frontend et backend ?
Frontend : améliore l’UX, évite les erreurs utilisateurs. Backend : protège contre les attaques (ex : injection SQL, XSS).
96
Comment fonctionne l’authentification avec JWT ?
Le serveur génère un token signé, envoyé au client, qui le renvoie dans le header Authorization pour chaque requête.
97
Comment gérer les autorisations côté backend avec Spring Boot ?
Avec Spring Security et @PreAuthorize.
98
Comment sécuriser les pages en Angular selon le rôle de l’utilisateur ?
Avec un Guard (canActivate) qui vérifie le rôle dans le JWT.
99
Pourquoi activer CORS dans une API backend ?
Pour autoriser ou restreindre les requêtes venant d’un autre domaine (évite les erreurs en mode frontend-backend séparés).
100
Pourquoi utiliser HTTPS au lieu de HTTP ?
Pour chiffrer les échanges, éviter les attaques Man-in-the-Middle (MITM) et garantir la confidentialité des données.
101
Pourquoi ne jamais stocker un mot de passe en clair et comment le sécuriser ?
Pour éviter les vols de données en cas de fuite. On utilise Bcrypt pour hasher le mot de passe avec un salt.
102
Quelles sont les bonnes pratiques pour définir un mot de passe sécurisé ?
Un mot de passe doit contenir au moins 12 caractères, avec une majuscule, une minuscule, un chiffre et un caractère spécial.
103
Quel est le rôle de l’ANSSI et pourquoi suivre ses recommandations ?
L’ANSSI (Agence Nationale de la Sécurité des Systèmes d'Information) définit des bonnes pratiques pour sécuriser les systèmes d’information et protéger contre les cyberattaques.
104
Qu’est-ce que le RGAA et pourquoi est-il important ?
Le RGAA (Référentiel Général d'Amélioration de l'Accessibilité) définit des règles pour rendre les sites accessibles aux personnes en situation de handicap.
105
Quelles sont les obligations du RGPD pour une application qui stocke des données utilisateurs ?
Assurer la minimisation des données, obtenir le consentement de l’utilisateur, permettre la suppression des données et garantir la sécurisation des accès.
106
Pourquoi un token JWT doit-il avoir une durée de vie limitée ?
Pour éviter les vols de sessions et forcer l’utilisateur à se reconnecter régulièrement.