Conseils aux étudiants en développement logiciel 6 août 2022 Depuis plusieurs années, j’interviens dans plusieurs filières (👋 UCA, ISIMA et Hesias) pour donner des cours de développement web. J’ai sans aucun doute moins de qualités pédagogiques qu’un enseignant de formation, en revanche, je peux probablement apporter aux étudiants une vision du marché du travail, de la vie en entreprise, des processus de recrutement, plus concrète qu’un enseignant. Et chaque année, j’aime prendre quelques minutes pour discuter de ces sujets et leur apporter mon point de vue (qui n’est pas la vérité absolue hein). ...
PHP - Symfony vs Laravel : mon expérience 31 juillet 2022 Récemment dans mon parcours professionnel, j’ai eu l’occasion de travailler sur une application Laravel 8. Moi qui était plutôt habitué à coder avec Symfony, c’était un challenge sympa de découvrir ce framework. Je dis découvrir mais en réalité j’avais déjà bossé avec Laravel (v4.2 et v5) en 2016 pour développer une petite API REST. Mais honnêtement cette expérience n’était pas suffisament poussée pour maitriser ce framework. Dans ce billet, j’ai envie de poser par écrit ce que j’ai compris des différences entre les deux frameworks. ...
PHP 8.2 - Classe readonly 29 juillet 2022 Après les propriétés readonly avec PHP 8.1 (info ici), nous aurons bientôt (fin 2022) les classes readonly avec PHP 8.2. Une classe déclarée readonly signifie que toutes ses propriétés sont également readonly. readonly class Foo { public string $bar; public string $baz; } Cela aussi implique que toutes les propriétés de la classe doivent être typées (puisque qu’une propriété non typée ne peut pas être readonly). Il sera également impossible d’utiliser des propriétés dynamiques (pas bien grave on est d’accord ? ...
PHP 8.1 - Propriété readonly 25 juillet 2022 PHP 8.1 a introduit une nouvelle fonctionnalité vraiment intéressante : les propriétés readonly. Celle-ci permet de déclarer que la valeur de la propriété ne peut être modifiée qu’une seule fois. Bien souvent on va vouloir le faire dans un constructeur mais ça peut être fait dans une autre méthode. En revanche, impossible de le faire à l’extérieur de la classe. C’est bien toute modification qui est impossible : c’est à dire qu’il est impossible d’utiliser les opérateurs d’incrémentation/décrémentation, unset(), etc… ...
Tour d'horizon de failles connues de JWT 23 juillet 2022 Tout d’abord je dois dire que le titre est clairement trompeur. Il n’y a pas de faille à proprement parler dans la technologie elle-même mais plutôt dans ses implémentations (quelque soit le langage utilisé). Faisons donc un tour des vulnérabilités plus ou moins connues des implémentations de JWT. Algo “none” Une vulnérabilité assez vite exploitée fut l’utilisation de la valeur none dans l’entête du JWT. En effet, il est prévu dans la RFC7519 la possibilité d’avoir des jetons non sécurisés en le spécifiant de cette manière : ...
Quelques bonnes pratiques lorsqu'on utilise des JWT 22 juillet 2022 JWT est une technologie bien connue des développeurs aujourd’hui. On l’utilise très souvent comme clé d’API, comme access token lorsqu’on fait du OAuth2 ou encore comme id token dans le cadre d’OpenID Connect. En clair, ça sert à faire de l’authentification et/ou de l’autorisation. Et comme tout ce qui touche à ce genre chose, il est primordiale d’y apporter une attention toute particulière ! C’est un angle d’attaque intéressant pour un attaquant non ? ...