Protéger son authentification symfony3 contre les attaques par force brute

Tout formulaire d'authentification est susceptible d'être attaqué par un hacker (enfin plus un robot) via une brute force. Cette attaque consiste à tester des couples login/password jusqu'à en trouver un qui permet de s'authentifier. Dans cette article je vais vous montrer comment se protéger facilement de ces attaques dans une application Symfony3 ou 2 via l'utilisation des Events de Symfony. C'est aussi l'occasion d'utiliser le composant cache introduit dans Symfony 3.1. Lire la suite

Symfony2: étendre globalement les options des FormType avec l'injection de dépendance

J'ai eu besoin de modifier les options que l'on peut passer à un Type afin de retrouver l'option help qu'il y avait dans les widgets de symfony 1. Dans cet article je vous présente comment j'ai ajouté cette option dans les Type de symfony2 sans avoir à surcharger tous les Types. Mise A Jour: grace au commentaire j'ai découvert les Forms Extension, l'article les utilise. Lire la suite

Manipulation des dates et heures en PHP5 avec la classe native DateTime

Suite à l'article sur la manipulation des dates en SQL, je me suis rendu compte, qu'en fait, la manipulation de date en php n'était pas si simple et connu que ça. Il existe beaucoup de fonctions sur les dates en PHP5 et je trouve encore pas mal de code récent qui s'embrouille à essayer de calculer des dates avec des mktime, en manipulant des timestamp.... Alors qu'une class bien pratique existe: DateTime. C'est donc elle, et ses comparses, que je vais présenter. Lire la suite

I18nSluggableBehavior pour gérer les slugs dans une base I18n avec Propel

L'ORM Propel est livré en standard avec 2 behaviors quasi indispensables.SluggableBehavior pour générer des slugs qui seront utilisés dans les URL et I18nBehavior qui permet de gérer l'internationalisation dans la base de donnée. Dans cet article, j'explique comment et pourquoi j'ai mixé ces 2 behaviors pour créer mon behavior: I18nSluggableBehavior. Lire la suite