Bash - Avancé
Ce cours suppose que les bases (pipes, redirections, variables, boucles) sont acquises. On passe à ce qui rend un script Bash robuste, sûr et exploitable en production ou en pentest.
Pages liées à un langage ou une pratique de programmation.
Voir tous les tagsCe cours suppose que les bases (pipes, redirections, variables, boucles) sont acquises. On passe à ce qui rend un script Bash robuste, sûr et exploitable en production ou en pentest.
Pourquoi Bash compte pour toi
Les bases (pointeurs, tableaux, structs) acquises, on entre dans ce qui fait du C un langage de systèmes — et dans les mécanismes précis des vulnérabilités mémoire, cœur de la sécurité offensive et défensive bas niveau.
Pourquoi le C reste incontournable
Les bases (STL, classes, RAII, références) acquises, on aborde ce qui fait la puissance et la complexité de C++ : gestion moderne de la mémoire, généricité, et les concepts qui distinguent le code C++ professionnel. Toujours avec un œil sur la performance et la sécurité.
C++ n'est pas « du C amélioré »
Le rôle du CSS
Django (2005) est un framework web Python "batteries incluses" : ORM, système d'authentification, interface d'administration auto-générée, protection CSRF/XSS par défaut, framework de formulaires... À l'opposé de la légèreté de Flask, Django vise la productivité sur des applications complètes dès le départ.
FastAPI (2018) est un framework moderne pour construire des API en Python, bâti sur les type hints natifs du langage. Sa promesse : validation automatique des données, documentation interactive générée toute seule, et des performances élevées grâce à un cœur asynchrone (ASGI, pas WSGI comme Flask/Django historiquement).
Flask (2010) est un micro-framework web Python : il fournit le strict nécessaire (routage, requêtes/réponses, templates) et laisse le développeur choisir le reste (ORM, authentification, validation...) via des extensions. À l'opposé de la philosophie "batteries incluses" de Django.
Ce qu'est (et n'est pas) HTML
Les bases acquises, on aborde les concepts qui font la particularité (et la difficulté) de JavaScript : l'asynchrone, les closures, le this, et les enjeux de sécurité côté client comme côté serveur.
Le langage du web (et bien plus)
NumPy (2006, héritier de Numeric/Numarray) est la fondation de tout l'écosystème scientifique Python — Pandas, scikit-learn, PyTorch reposent tous dessus, directement ou dans leur philosophie. Son apport central : le ndarray, un tableau multidimensionnel homogène et des opérations vectorisées bien plus rapides que des boucles Python pures.
Pandas (2008) construit par-dessus NumPy deux structures pensées pour manipuler des données tabulaires et hétérogènes (comme un tableur ou une table SQL) : la Series (une colonne) et le DataFrame (un tableau 2D avec des colonnes typées indépendamment, et des index nommés).
Les bases acquises, ce cours se concentre sur ce qui compte le plus pour ton profil : les vulnérabilités web côté serveur (leur mécanisme et leur prévention), et les concepts PHP avancés qui les entourent. C'est le cœur du pentest web et de la sécurité applicative.
PHP, le langage du web côté serveur
Les bases (objets, cmdlets, pipeline) étant acquises, on aborde ce qui fait de PowerShell un outil d'administration et de sécurité puissant sur Windows — et un outil offensif redoutable qu'il faut comprendre pour défendre.
Pourquoi PowerShell est différent (et pourquoi ça compte)
Les bases acquises, on passe aux concepts qui distinguent le code Python amateur du code solide, avec un focus sur ce qui sert en réseau/système/cybersécu. On reste sur le langage et sa bibliothèque standard (les bibliothèques tierces comme scapy, requests, pwntools feront l'objet de sous-cours dédiés).
Pourquoi Python est le couteau suisse de la cybersécu
PyTorch (2016, Meta AI) est aujourd'hui le framework de deep learning dominant en recherche, et de plus en plus en production. Son idée centrale : manipuler des réseaux de neurones avec des tenseurs proches de NumPy, mais qui savent calculer automatiquement leurs propres gradients (autograd) — le mécanisme qui rend l'entraînement par rétropropagation possible sans dériver les formules à la main.
Les bases (ownership, borrowing, Option/Result) acquises, on approfondit ce qui fait de Rust un langage complet pour les systèmes, le réseau et la sécurité — et pourquoi il est adopté là où la sûreté compte le plus.
Le problème que Rust résout
scikit-learn (2007) est la bibliothèque de référence pour le machine learning classique en Python — par opposition au deep learning (PyTorch, TensorFlow/Keras). Régression, classification, clustering, réduction de dimension : scikit-learn couvre les algorithmes "traditionnels" (arbres de décision, forêts aléatoires, SVM, k-means...) avec une API unifiée qui rend les modèles interchangeables.
Scrapy (2008) est un framework complet d'extraction de données web — à différencier d'une simple combinaison requests + BeautifulSoup : Scrapy fournit une architecture asynchrone entière (crawl de milliers de pages en parallèle), la gestion des files d'attente de requêtes, le respect automatique de robots.txt, l'export structuré, et un système de plugins (middlewares).
SQLAlchemy (2006) est la bibliothèque de référence pour parler à une base de données relationnelle en Python — utilisée seule, ou comme moteur derrière l'ORM de Flask (Flask-SQLAlchemy) ou de FastAPI. Elle propose en réalité deux niveaux d'abstraction bien distincts.
TensorFlow (2015, Google) est l'autre grand framework de deep learning, historiquement dominant en production/industrie face à PyTorch, plus présent en recherche. Depuis TensorFlow 2, Keras est son API officielle de haut niveau — au point que, dans la pratique quotidienne, on écrit surtout du Keras, TensorFlow restant le moteur de calcul en dessous.