Mon CV
← Retour aux stages

🔐 Stage chez Reverse OI

Développement d'une application web de cybersécurité

📅 4 semaines 📍 Reverse OI 🎓 BTS SIO 1ère année

📌 Présentation et Contexte

Durant ma période de stage, j'ai intégré l'entreprise Reverse OI, spécialisée dans la cybersécurité. Mon objectif principal était de participer au développement d'une application web avec le framework Django, pour centraliser, traiter et afficher les résultats générés par des outils de test d'intrusion (pentesting) comme Nmap, WhatWeb, et ZAP.

Ce projet m'a permis de découvrir concrètement comment exploiter ces outils dans une interface web sécurisée et de développer une API complète en Python pour automatiser les scans de sécurité.

🐍 Python 🎯 Django 🔌 Django REST Framework 🗄️ PostgreSQL 🔐 JWT 📡 Nmap 🕷️ ZAP 🌐 WhatWeb

🛠️ Semaine 1 - Mise en Place et Découverte

Découverte des Outils de Pentesting

Lors de ma première semaine, je me suis concentré sur la découverte des outils de pentesting utilisés dans le projet : Nmap pour le scan réseau, WhatWeb pour l'analyse des technologies web, et ZAP pour la détection de vulnérabilités. Je les ai explorés en autonomie pour bien comprendre leur fonctionnement, leurs objectifs et le type de données qu'ils renvoient.

Développement de l'API Django

Ensuite, j'ai commencé le développement d'une API en Python avec Django, capable d'exécuter ces outils directement depuis l'interface web et d'en afficher les résultats. Cela m'a permis de renforcer mes compétences en Python et Django, et de me plonger dans un vrai projet web orienté sécurité. Enfin, j'ai mis en place un repository Git pour versionner mon travail et suivre l'évolution du code de façon professionnelle.

🧩 Semaine 2 - Traitement des Données

Lors de la deuxième semaine, je me suis concentré sur le traitement des résultats bruts. J'ai développé un parseur personnalisé pour extraire les informations utiles des lignes de commande générées par les outils. Ensuite, j'ai converti ces résultats en JSON structuré, plus facile à exploiter.

Puis, j'ai modélisé ces données à l'aide des modèles Django ORM, et je les ai stockées dans une base de données PostgreSQL. Enfin, j'ai développé des vues Django pour afficher dynamiquement ces données dans l'interface web. Cette partie m'a permis de renforcer mes compétences en manipulation de données, en modélisation avec Django, et en affichage dynamique côté frontend.

Capture d'écran des modèles Django
Modèles Django ORM pour la gestion des scans de sécurité

🧪 Semaine 3 - Tests et Sécurisation

La troisième semaine était dédiée à la vérification et à la sécurisation de l'application. J'ai appris à utiliser l'outil Hoppscotch, une alternative à Postman, pour tester les requêtes HTTP et m'assurer que les réponses JSON étaient bien renvoyées par l'API.

Ensuite, j'ai utilisé Git de manière plus avancée, en travaillant avec des branches, ce qui m'a permis de faire mes modifications sans impacter le code principal. J'ai également implémenté un système d'authentification sécurisé avec Django REST Framework et les tokens JWT, permettant aux utilisateurs de s'authentifier et d'accéder uniquement à certaines parties de l'application.

Vue d'authentification Django REST
Système d'authentification JWT avec Django REST Framework
Workflow de création de compte
Schéma du workflow de création d'un compte utilisateur (cliquez pour agrandir)

🎓 Expérience Complémentaire

En parallèle, j'ai eu l'occasion d'assister à la soutenance de stage de plusieurs étudiants en BUT Réseaux & Télécommunications. Cela m'a permis de découvrir d'autres projets orientés cybersécurité et de mieux comprendre les attentes professionnelles lors d'une présentation technique.

🧱 Semaine 4 - Accompagnement et Déploiement

Accompagnement d'un Stagiaire

Pour cette quatrième semaine, mes missions ont évolué avec plus de responsabilités. J'ai été chargé d'accompagner un stagiaire de seconde, débutant en Python et Django. Mon rôle était de l'aider à comprendre les bases du langage et à progresser dans l'utilisation du framework. Pour cela, je lui ai proposé des mini-projets progressifs, avec des objectifs concrets. Nous avons organisé plusieurs visios où je lui expliquais certains concepts plus complexes et répondais à ses questions.

Cette expérience m'a permis de développer des compétences en pédagogie, en communication, et en accompagnement technique.

Refonte et Déploiement du Portfolio

En parallèle, j'ai été encouragé à retravailler mon portfolio personnel en utilisant Django afin de mettre en valeur mes compétences récentes. J'ai relevé le défi et réussi à le recréer intégralement. Pour rendre le projet plus professionnel, je l'ai hébergé sur Heroku, un serveur basé en Irlande, afin de respecter les exigences du RGPD. J'ai également acheté un nom de domaine personnalisé via OVH pour rendre l'accès plus accessible et sérieux.

Ce double objectif m'a permis de progresser à la fois sur le plan technique (déploiement, gestion de domaine, configuration d'un environnement de production) et humain (transmission de savoirs, patience, autonomie).

🎯 Compétences Mobilisées

Tableau des compétences

📊 Résultat Final

À l'issue des quatre semaines de stage, l'application web développée permet aux utilisateurs authentifiés de :

L'interface est responsive, sécurisée avec des tokens JWT, et déployée sur un serveur respectant les normes RGPD.

Interface finale de l'application
Interface principale de l'application web (cliquez pour agrandir)

💻 Code Source du Projet

assadakh/projet-django Public

Projet Django développé durant le stage - Application web de cybersécurité intégrant Nmap, WhatWeb et ZAP

Python 66.6%
HTML 33.4%
📝 14 commits
Voir le code sur GitHub

🎓 Bilan et Retour d'Expérience

Ce stage m'a permis d'approfondir mes compétences techniques en Python, Django, gestion de bases de données, API REST, et cybersécurité via les outils de pentesting. J'ai également progressé sur le plan personnel en autonomie, rigueur, et gestion d'un projet complet, de l'analyse des besoins à la mise en place de l'interface web sécurisée.

En fin de stage, j'ai eu l'opportunité d'accompagner un autre stagiaire débutant, ce qui m'a permis de revoir mes propres acquis tout en apprenant à transmettre mes connaissances avec clarté et pédagogie. Par ailleurs, j'ai profité de cette période pour retravailler mon portfolio personnel en utilisant Django, et le mettre en ligne de manière professionnelle, ce qui m'a permis de mieux comprendre les étapes du déploiement et les exigences liées à un environnement de production.

C'est un stage très formateur, qui a confirmé mon intérêt pour les domaines du développement web sécurisé et de la cybersécurité. Je suis motivé pour continuer à me former dans ce domaine, notamment en pratiquant des CTF ou en explorant les outils professionnels liés à la sécurité.

← Retour aux stages