visiteur@pbl:~$ whoami

$ Étudiant B2 Informatique · orienté cybersécurité█

Je construis des applications et des réseaux en partant de la question : qui a le droit de faire quoi ? Pare-feu en liste blanche, moindre privilège en base, authentification vérifiée côté serveur.

repos publics
26
langages
7
apps en ligne
3
visiteur@pbl: ~

Shell interactif. Tapez help puis Entrée.

01whoami

Étudiant en Bachelor 2 Informatique à Ynov Campus Paris Ouest, après un bac STI2D ITEC. Je code en Go, Python et TypeScript, et je m'oriente vers la cybersécurité.

Ce qui m'intéresse : comprendre comment un système tombe pour mieux le fermer. Écrire un pare-feu à partir d'une matrice des flux, retirer à un compte SQL tout ce dont il n'a pas besoin, refuser un jeton dont la signature n'a pas été vérifiée.

En dehors du terminal : conception 3D, photo, sport, jeux vidéo.

nom        Paul Bourdareau Launay
rôle       étudiant B2 informatique
école      Ynov Campus Paris Ouest
cap        cybersécurité
langues    français (natif), anglais (avancé)
shell      go · python · typescript · sql
statut     ouvert aux stages / alternances

02défense en profondeur

Chaque couche, une mesure que j'ai réellement mise en place, et le projet qui le prouve.

  1. L1

    Réseau

    Pare-feu nftables en liste blanche (policy drop), zones WAN / LAN / DMZ, suivi d'état, DNAT, journalisation des rejets.

    Calypso
  2. L2

    Système

    SSH par clé uniquement, mots de passe désactivés, connexion root interdite.

    Calypso
  3. L3

    Authentification

    Mots de passe en bcrypt, comparaison à temps constant, JWT signés et expirants, jetons OAuth vérifiés par signature Ed25519 (JWKS).

    Crypto Arena · api-jeux
  4. L4

    Entrées

    Validation côté serveur (Pydantic, Zod), requêtes paramétrées, aucune valeur sensible acceptée du client.

    Crypto Arena · Traque
  5. L5

    Données

    Row Level Security, rôles métiers NOLOGIN, GRANT à la colonne près, vues par profil : le moindre privilège.

    Traque · Bibliothèque mangas
  6. L6

    Secrets & configuration

    Secrets hors dépôt, CORS restreint aux origines connues, CSP stricte et en-têtes de sécurité.

    Crypto Arena · ce site

03dossiers sécurité

Cinq projets où la sécurité est dans le code, pas dans la description.

DOSSIER 01RÉSEAUDURCISSEMENT

Calypso — lab réseau durci

Passerelle Linux à trois zones (WAN, LAN, DMZ) protégeant un serveur interne et un intranet web. TP Réseaux B2.

  • nftables en liste blanche : policy drop sur input et forward
  • Règles dérivées d'une matrice des flux, une ligne = une règle
  • Suivi d'état conntrack, paquets invalides rejetés, ping limité à 5/s
  • DNAT pour publier le web en DMZ, masquerade en sortie
  • SSH : clé uniquement, root interdit
nftables · OpenSSH · NAT · Linuxlab local
DOSSIER 02APPSECAUTH

Crypto Arena

Simulateur de trading crypto à argent virtuel, prix réels, classement entre joueurs. React, FastAPI, PostgreSQL.

  • bcrypt, comparaison à temps constant, aucun indice sur l'existence d'un e-mail
  • JWT HS256 expirant, vérifié sur chaque route privée
  • Connexion Google / GitHub : signature Ed25519 vérifiée via JWKS, émetteur, audience, expiration
  • Le prix n'est jamais accepté du client ; transactions avec verrous ligne
  • CORS restreint, requêtes paramétrées, secrets hors dépôt
DOSSIER 03APPSECDONNÉES

Traque — manhunt géolocalisé

Jeu de poursuite entre amis avec positions en temps réel sur carte. Next.js 15, Supabase, MapLibre.

  • Row Level Security Postgres : le navigateur n'a que la clé anon
  • Vue filtrée par rôle : un chasseur ne lit pas ce qu'un chassé voit
  • Toutes les entrées validées côté serveur avec Zod
  • RLS testée en SQL avec 6 comptes simulés, dont un extérieur à la partie
  • 14 scénarios multi-comptes automatisés
Next.js · Supabase · RLS · Zod · Vitest démo ↗
DOSSIER 04DONNÉESMOINDRE PRIVILÈGE

Bibliothèque de mangas

Base PostgreSQL de prêt de mangas, 200 005 emprunts. Projet SQL avancé B2, en groupe.

  • Rôles métiers NOLOGIN, un compte par personne qui en hérite
  • UPDATE accordé sur une seule colonne, e-mails des lecteurs illisibles au comptoir
  • Vues par profil : le gérant lit des statistiques, rien d'autre
  • Trigger qui fait respecter la règle métier dans la base elle-même
  • Index sur clé étrangère : requête environ 40 fois plus rapide
PostgreSQL · PL/pgSQL · GRANT · Docker code ↗
DOSSIER 05APPSECAPI

api-jeux

API REST d'un catalogue de jeux. FastAPI, SQLAlchemy, Pydantic, PostgreSQL.

  • Module securite.py : hachage bcrypt appelé directement, passlib étant incompatible avec Python 3.13
  • Vérification à temps constant, même pour un compte inexistant
  • Jetons JWT signés, clé secrète en variable d'environnement
  • Import CSV qui rejette les lignes invalides
  • Conteneurisé (API + PostgreSQL), ruff et pytest
FastAPI · bcrypt · JWT · Docker · pytest code ↗

04autres builds

05arsenal

Réseau & système

  • nftables
  • OpenSSH
  • NAT / DMZ
  • Matrice des flux
  • Linux
  • Docker

Sécurité applicative

  • JWT
  • bcrypt
  • OAuth / JWKS
  • CORS
  • CSP
  • Validation serveur

Données

  • PostgreSQL
  • Row Level Security
  • Rôles & GRANT
  • Triggers
  • Index
  • Supabase

Développement

  • Python / FastAPI
  • Go
  • TypeScript / Next.js
  • React
  • Java
  • PHP

Qualité

  • Git / GitHub
  • pytest
  • Vitest
  • ruff
  • Tests multi-comptes

06parcours

  1. Bachelor 2 Informatique

    Ynov Campus Paris Ouest. Réseaux, SQL avancé, backend Python, sécurité.

  2. Bachelor 1 Informatique

    Ynov. Go, Java, Git, premiers projets en équipe.

  3. Baccalauréat STI2D, spécialité ITEC

    Ingénierie, prototypage, conception 3D. Projet d'oral : support de niveau laser 360°.

07contact

$ mail contact@paulbl.com

Un stage, une alternance, un projet ? Écrivez-moi.