Retour aux articles

L'agence

WanadevStudio

5 sources d'amélioration pour la sécurité de votre application Symfony

Dans un monde où les données personnelles deviennent un business pour des hackers, la sécurité devient un élément très important. Il faut savoir protéger ses utilisateurs ainsi que se protéger soi-même.

Voici quelques pistes, conseils ou suggestions qui pourraient vous sauver de quelques coquilles lors de vos développements Symfony.

Se protéger des failles XSS avec HTMLPurifyBundle

Le HTMLPurifyBundle est un bundle qui vous aide à filtrer correctement toutes les entrées utilisateur sur votre site web et éviter toutes injections XSS.

Ce bundle implémente un nouveau filtre Twig qui remplace le filtre raw, en charge de faire le rendu total d'une variable. Le filtre purify limite l'injection de balises <script> qui peuvent être malicieuses. Assez simple d'utilisation, je vous le recommande fortement !

Vérifier et limiter le nombre d'essais de mot de passe

Vérifier et limiter le nombre d'essais de mot de passe ainsi que l'envoi d'emails de réinitialisation pour éviter des attaques de type Brute force. Ces attaques peuvent aussi être assimilées à du DDoS.

Les robots qui crawlent les pages peuvent effectuer un grand nombre de requêtes sur un laps de temps très court. La mise en place d'un ReCaptcha de type Google peut être aussi une très bonne alternative.

Mettre en place un proxy devant l’accès aux ressources sensibles

Pour protéger les données exemples : RIB, factures, lettres (c'est à dire tous les documents ne devant pas être exposés publiquement), il est utile de mettre en place un proxy contrôlant l'accès. Cela évite un accès direct aux dossiers d'upload.

Nous conseillons bien évidement d'effectuer des tests en amont sur les types MIME pour limiter l'injection de code « malin » (XSS).

Se prémunir du Click jacking

Sur une boutique en ligne, vous pouvez être victime d'une attaque de type clickjacking. Pour pallier à ce type d'attaque, vous pouvez placer une en-tête (header) HTTP à rajouter côté serveur. Cela vous met à l'abri de ces problèmes.

Voici la méthode l'en-tête à ajouter : X-Frame-Options: DENY. Cela désactive l'affichage de votre site dans une iframe.

@ Avec ce dispositif, un hacker ne pourra plus détourner un clic d'utilisateur connecté et provoquer un achat inopiné (par exemple).

Double protection de vos formulaires

Enfin, sécurisez vos formulaires en vérifiant chaque information reçue, du côté client mais SURTOUT du côté serveur. Cela vous permet de sécuriser les informations reçues mais également limiter les erreurs de base de données ou erreurs de rendus (templating).

Toutes ces précautions, relativement peu gourmandes, sont simples à mettre en place pour bien sécuriser vos sites Symfony. Ces dispositifs sont par ailleurs des points intéressants à relever lors d'audit de sécurité, de véritables kits de survie ! Ces petites attentions vous le rendront bien.

Et vous, vous avez des petites astuces pratiques pour éviter les pièges lors de vos développements ? Nous sommes attentifs à vos retours et suggestions !

Par ailleurs, je tiens à remercier Alain Tiemblo pour son intervention sur la sécurité à la conférence de l'AFUP 2016 à Clermont Ferrand.

Commentaires

Philippe

Il y a 6 ans

Répondre

Bonjour
Je développe actuellement un "intanet" pour notre lycée avec Symfony3 et mon problème actuel est de réussir à sécuriser un espace pour les documents privés.
Auriez vous des liens pointant vers des tutos ou des exemples ?
D'avance merci
Philippe

  • Tests automatiques fonctionnels d’applications 2D/3D

    Il y a 11 mois

    Comme nous le disions dans cet article, l’automatisation des tests dans le développement logiciel est indispensable : dès lors qu’une application commence à avoir un minimum d’importance, les tests automatiques permettront de gagner énormément de temps en évitant de reproduire ad vitam æternam les mêmes tests manuels, et éviteront beaucoup de régressions. Dans cet article, nous allons présenter différents types de tests automatiques dans le cadre plus spécifique d’applications 2D/3D, puisque c’est ce que nous faisons ! Cela va du test basique qui clique sur 3 boutons aux tests de plusieurs minutes reproduisant les actions comme un véritable utilisateur. Accrochez-vous, c’est parti !

  • Configurateur web à l'abonnement : forces et faiblesses

    Il y a 12 mois

    Aujourd’hui, si vous cherchez à mettre en place un configurateur sur votre site, deux grandes possibilités s'offrent à vous : les solutions par abonnement (du type SaaS) ou le développement sur mesure. Au premier abord, les solutions semblent proches, mais les enjeux sur le long terme eux, sont bien différents.

  • Les frameworks front, tous les mêmes !
    Méthodologie

    Il y a 1 an

    C'est une phrase que j'ai osé sortir un jour dans la salle de pause de Wanadev. Je ne sais plus exactement avec quel collègue je discutais, j’essayais de le rassurer, il possédait déjà une certaine expérience avec React et allait devoir, en arrivant sur le projet sur lequel je travaille, se mettre à Vue.
    Il a malheureusement fallu qu'un autre collègue de passage nous entende pour ne pas trouver la conversation inintéressante et suggérer que j'en fasse un petit talk pour nos réu du lundi. Et, de fil en aiguille, me voilà en train d'en faire un article de blog. Comme quoi, note pour moi-même, il faut toujours se méfier des discussions dans les salles de pause.

  • [NOVEMBRE 2021] C'est la gazette de Wanadev !
    Méthodologie

    Il y a 1 an

    Retrouvez ici les informations et actus du mois de novembre de l'Agence! Au programme de cette édition : découvrez le configurateur de fenêtre développé pour Caseo, recontrez François Deleglise, notre directeur communication et un nouvel espace de jeu pour les professionnels du loisir en VR. Bonne lecture !

  • Un peu d'ingérence dans votre infogérance ?
    Méthodologie

    Il y a 2 ans

    Même si les impacts sont difficiles à mesurer, on peut dire qu’il a eu un avant et un après incident OVH. Sans épiloguer sur l'incendie du 5 mars 2021 dernier, un petit vent de panique a soufflé sur les milliers de clients découvrant les problématiques de sécurisation des données. Les réactions à chaud d'une partie des utilisateurs (touchés ou non) montrent la méconnaissance et l'incompréhension qui existent dans les offres d'hébergement. Qui est responsable ? Qui fait quoi ? Comment vérifier mon offre ? Voici quelques clés de compréhension.

  • Améliorer la qualité avec les tests et la review

    Il y a 2 ans

    L’importance des tests et de la revue de code dans le cadre du développement logiciel est parfois négligée ou passée au second plan. Cet article a pour but de montrer que les tests logiciels constituent une étape cruciale qu’il faut considérer avec beaucoup de rigueur.