Développer la partie back-end d’une interface utilisateur web
Description de la compétence – processus de mise en œuvre
À partir du dossier de conception technique, et dans le respect des bonnes pratiques de développement et de sécurisation d’application web, coder, tester et documenter les traitements côté serveur, afin d’assurer la collecte et la restitution d’informations numériques.
Pratiquer une veille technologique, y compris en anglais, pour résoudre un problème technique ou mettre en oeuvre une nouvelle fonctionnalité ainsi que pour s’informer sur la sécurité informatique et les vulnérabilités connues.
Partager le résultat de sa veille avec ses pairs.
Contexte(s) professionnel(s) de mise en œuvre
Cette compétence s’exerce seul ou en équipe. Le développement d’une application web s’effectue à partir d’un environnement de développement intégré supportant les différents langages serveur.
Critères de performance
- Les bonnes pratiques de développement objet sont respectées.
- Les composants serveur contribuent à la sécurité de l’application.
- Le code source des composants est documenté ou auto-documenté.
- Les tests garantissent que les traitements serveurs répondent aux fonctionnalités décrites dans le dossier de conception technique.
- Les tests de sécurité suivent un plan reconnu par la profession.
- L’objet de la recherche est exprimé de manière précise en langue française ou anglaise.
- La documentation technique liée aux technologies associées, en français ou en anglais, est comprise (sans contre-sens, …).
- La démarche de recherche permet de résoudre un problème technique ou de mettre en œuvre une nouvelle fonctionnalité.
- La veille sur les vulnérabilités connues permet d’identifier et corriger des failles potentielles.
- Le partage du résultat de veille est effectué oralement ou par écrit avec ses pairs.
Savoir-faire techniques, savoir-faire organisationnels, savoir-faire relationnels, savoirs
- Utiliser un outil collaboratif de partage de ressources.
- Utiliser un outil de virtualisation ou de conteneurisation.
- Écrire un algorithme.
- Développer dans un langage objet.
- Développer la partie dynamique de l’application avec des composants serveurs, dans un style défensif, et éventuellement en asynchrone.
- Appeler des Web Services dans un composant serveur.
- Documenter les pages web.
- Sécuriser la liaison entre le client et le serveur web.
- Gérer la sécurité de l’application (authentification, permissions…) dans la partie serveur.
- Utiliser des composants d’accès aux données.
- Réaliser un jeu de tests de l’application web en précisant les tests ou en appliquant une stratégie de tests.
- Prendre en compte les contraintes des applications multilingues.
- Tester la sécurité du site, avec un guide de test reconnu (par exemple, celui d’OWASP).
- Publier l’application développée sur un serveur web.
- Planifier et suivre les tâches de développement.
- Faire effectuer un test d’intrusion.
- Prendre en compte un rapport de test d’intrusion et les corrections possibles pour traiter la vulnérabilité.
- Rechercher une réponse pertinente à une difficulté technique de développement.
- Rechercher des informations sur des sites Internet, des forums et des FAQ francophones ou anglophones.
- Contribuer à la mise à jour des bases de connaissances francophones ou anglophones accessibles par Internet.
- Connaissance d’un environnement de développement intégré.
- Connaissance du vocabulaire anglais professionnel associé au web.
- Connaissance des principes de communication du web.
- Connaissance liée aux objets connectés (protocole de communication, …).
- Connaissance des concepts de la programmation objet.
- Connaissance des bonnes pratiques de qualité et d’écoconception web.
- Connaissance des bases de la cryptographie et des mécanismes de sécurité du web.
- Connaissance du rôle de l’infrastructure et des protocoles réseau dans la sécurité d’une application web.
- Connaissance des langages du développement web coté serveur.
- Connaissance des principales failles de sécurité des applications web (XSS, CSRF) et de leurs parades.
- Connaissance des bonnes pratiques d’architecture : rôles du client et du serveur web dans la sécurité (authentification et permissions, validations des entrées).
- Connaissance des bonnes pratiques de sécurisation du développement web (scripts client et pages serveur).
- Connaissance des modes de publication d’une application web.
- Connaissance d’un outil de virtualisation ou de conteneurisation.