Blog

  💥 Une simple saisie dans un formulaire peut-elle suffire à compromettre une application ? La réponse est oui… et c'est précisément le principe des injections SQL. Malgré plus de vingt ans de sensibilisation, de frameworks modernes et de recommandations de l'OWASP, cette vulnérabilité reste l'une des plus répandues. Pourtant, elle repose souvent sur une erreur de développement évitable : laisser des données utilisateur être interprétées comme du code SQL. Dans cet article, je vous propose de revenir sur les fondamentaux : ➡️ comment fonctionne une injection SQL ; ➡️ ce qu'un attaquant peut réellement faire, du contournement d'une authentification à l...
Entre conférences inspirantes, découvertes technologiques et rencontres enrichissantes, cette édition a une nouvelle fois tenu toutes ses promesses. Le palais des congrès a accueilli pendant 3 jours la célèbre conférence autour du développement et de la programmation « DEVOXX PARIS 2026 ». Ayant eu la chance de pouvoir y participer à cinq, nous profitons de la sortie des vidéos pour vous proposer, dans cet article, un retour sur les différentes nouveautés présentées, mais également sur l'expérience humaine vécue tout au long de l'événement. Nous espérons ainsi vous restituer au mieux cette belle aventure. Afin de vous faire partager notre expérience, nous av...
Imaginez que votre application vient d'être compromise. Les attaquants sont entrés, ont peut-être exfiltré des données, et sont repartis. Votre première réaction ? Aller consulter les logs. Sauf que les logs ont été effacés. Ou pire : ils étaient incomplets depuis le début. C'est le paradoxe des logs. Indispensables pour reconstruire une chronologie lors d'un incident, ils peuvent eux-mêmes devenir une source de fuite de données, un vecteur d'attaque, ou un risque réglementaire qu'on ne voit pas venir si on ne les a pas pensés correctement. Les exemples concrets ne manquent pas. En 2022, GitHub révélait dans un post-mortem public que des mots de passe en clair d'ut...
La code review est l'une des pratiques les plus universellement adoptées dans nos équipes, et paradoxalement l'une des moins réfléchies. On la fait parce que c'est dans le process, parce que GitHub l'exige avant le merge, parce que c'est comme ça que ça a toujours fonctionné. Et puis on approuve, on merge, on passe à autre chose. Pourtant, derrière ce rituel souvent vécu comme un frein à la livraison se cache l'un des seuls moments dans le cycle de développement où toute l'équipe regarde le même code au même moment, sans réunion supplémentaire, sans document à rédiger. Un moment où un junior peut questionner un pattern que tout le monde accepte depuis des années, o...
Découvrez dans ce guide pratique comment automatiser le déploiement d'images Docker sur Amazon ECR grâce à une approche DevOps moderne combinant : 🐳 Docker for the Containeurization ☁️ Amazon ECR pour le stockage sécurisé des images ⚙️ GitHub Actions pour l'automatisation CI/CD 🏗️ Terraform pour l'infrastructure en tant que code Au programme : ✅ Présentation d'Amazon ECR et de ses avantages✅ Création et gestion d'un registre de conteneurs AWS✅ Construction et publication automatique d'images Docker✅ Mise en place d'un pipeline CI/CD avec GitHub Actions✅ Automatisation de l'infrastructure avec Terraform ✅ Bonnes pratiques D...
Quand on a besoin d'une collection clé-valeur en C#, le réflexe est quasi universel : on instancie un Dictionary<TKey, TValue> et on passe à la suite. Ce choix est parfaitement légitime dans la grande majorité des cas. Mais il existe une catégorie de situations où ce réflexe nous fait passer à côté de quelque chose : les collections qui, une fois construites, ne changent plus jamais. Dans ces cas-là, utiliser un Dictionary standard revient à laisser la porte ouverte à des mutations qui ne devraient pas pouvoir arriver, et à se priver de performances de lecture que le runtime pourrait tout à fait nous offrir si on lui indiquait clairement nos intentions. Le nam...
Nous partageons aujourd'hui un guide pratique destiné aux collaborateurs souhaitant se préparer aux entretiens Cloud Engineer ou renforcer leurs connaissances dans les environnements cloud. This document aborde les thématiques essentielles généralement évaluées lors des entretiens techniques : les fondamentaux du cloud, les principaux services AWS/Azure/GCP, les bases du networking, L'infrastructure en tant que code, Docker et Kubernetes, la sécurité, surveillance des yeux, l'optimisation des coûts, le design du système, ainsi que les bonnes pratiques de communication technique. Un support utile pour consolider ses compétences, préparer des ...
🚀 Nouveau guide : créer et publier des images Docker sur Amazon ECR avec GitHub Actions et Terraform Retrouvez dans ce guide les étapes essentielles pour construire une image Docker, la stocker dans Amazon ECR et automatiser son déploiement via GitHub Actions et Terraform. Une approche efficace pour industrialiser les flux de travail DevOps, fiabiliser les déploiements et mettre en place un pipeline CI/CD robuste dans un environnement cloud. Bonne lecture à tous 😊 Docker_images_aws_ecr_FR Article rédigé par Assma FADHLI...
AWS Summit Paris 2026 : L'IA en voie d'industrialisation Le 1er avril dernier, nous avons participé à l'AWS Summit Paris avec Lionel et Houcem. Cette 20ᵉ édition reflète une tendance désormais bien installée : l'IA est omniprésente, mais surtout de plus en plus mature dans ses usages. Après plusieurs années marquées par l'expérimentation, les solutions présentées s'inscrivent désormais dans une logique d'industrialisation et d'intégration au cœur des systèmes d'information. Discours principal : la vision d'AWS pour l'IA en production :                          ...
async/await — deux mots-clés qui ont transformé la façon d'écrire du code asynchrone en C#. Depuis leur introduction en C# 5.0, ils promettent un code plus lisible, plus fluide, presque aussi naturel à lire que du code synchrone classique, et ils tiennent cette promesse... la plupart du temps. Le vrai problème avec async/await, c'est que les erreurs qu'on y fait sont rarement visibles immédiatement. Le code compile, les tests passent, l'application tourne, et puis un jour, en production, un deadlock fige l'interface utilisateur, une exception disparaît dans la nature sans laisser de trace, ou une opération continue de consommer des ressources alors qu'elle aurait dû s'arr...