mesures de sécurité php

Quelques mesures de sécurité PHP à connaître

Aujourd’hui, PHP est le langage de programmation le plus apprécié pour rendre les pages d’un site internet dynamiques. Cela étant, il présente certaines brèches de sécurité en raison du fait qu’avec ce langage, les serveurs web sont accessibles au public. Découvrez les failles que l’on rencontre le plus fréquemment chez les sites internet développés avec PHP ainsi que les méthodes d’attaque les plus utilisées par les hackers ! La sécurité de vos données étant l’une de nos priorités, nous vous recommandons quelques mesures de sécurité PHP pour gérer et prévenir les attaques web !

Injection SQL

L’injection SQL est la méthode de piratage la plus utilisée sur les applications et sites web interagissant avec une base de données comme ceux développés avec PHP. Vecteur d’attaque très efficace, elle consiste à modifier une requête SQL en insérant des morceaux de code non filtrés par l’intermédiaire de données transmises depuis le site. Elle permet non seulement de récupérer des informations sensibles d’une base de données mais aussi de modifier ou supprimer entièrement cette dernière.

Pour éviter une telle attaque, il est indispensable de vérifier et de valider les données utilisateurs (celles dans les zones du site et celles provenant de sources externes). Si vous procédez ainsi, le hacker aura moins de marges de manœuvre quant à l’insertion de codes dans les requêtes SQL non protégées.

Cross-Site Scripting

Abrégé CSS ou XSS, le Cross-Site Scripting affecte principalement les sites vulnérables, ceux qui acceptent des données provenant d’un utilisateur sans effectuer un contrôle et un encodage des informations saisies. Il s’agit ici d’insérer un script malveillant dans le site pour déclencher certaines actions sur celui-ci. Une fenêtre pop-up peut notamment s’ouvrir et diriger l’utilisateur vers un site de phishing pour une usurpation d’identité.

Pour éviter ce type d’attaque, il vous est conseillé de toujours vérifier et tester votre site avant de le lancer. Outre cela, l’usage de fonctions d’échappement s’impose. Il est alors indispensable d’utiliser des caractères d’échappement intégrant des syntaxes HTML et JavaScript ou de les convertir en entités HTML. Vous pouvez en l’occurrence protéger votre site contre les attaques CSS à l’aide de la fonction htmlspecialchars () qui transforme les sorties en entités HTLM.

Session et Cookie Hacking

À la différence des attaques évoquées précédemment, le piratage de session et de cookies ne permet pas une intrusion au sein de la base de données ou de l’application web. Cela étant, il affecte néanmoins les comptes des utilisateurs. Lorsque ces derniers entrent en contact avec un serveur web, une entité se déclenche : la session. Les usagers sont authentifiés via un nom d’utilisateur et un mot de passe. Durant cette session, le site ou l’application stocke un fichier sur le navigateur de l’usager. Il s’agit du cookie. Celui-ci contient des informations sur la session (données d’authentification, préférences des utilisateurs, etc.) qui peuvent être détournées grâce à l’attaque.

Pour se parer d’une telle attaque, il faut utiliser la fonction session_regenerate_id() qui attribue un nouvel ID à l’utilisateur, toutes les fois où il se connecte. Cela empêche les hackers de définir des identifiants de session avant la connexion. Il s’avère également prudent de revalider un utilisateur censé réaliser des tâches importantes ou sensibles afin de minimiser le risque d’intrusion. Par ailleurs, pensez à chiffrer le mot de passe utilisateur grâce à la fonction sha1(), notamment si celui-ci est sauvegardé dans une variable session. Si des informations délicates sont stockées dans votre application web, utilisez une connexion sécurisée telle que la connexion SSL.

Directory Traversal

Les attaques Directory ou Path Traversal permettent aux hackers d’accéder aux fichiers du répertoire racine du document web. Ils peuvent alors identifier les fichiers restreints et les manipuler dans le but d’interagir avec le serveur web et d’exécuter des commandes. Cette méthode de piratage est effectuée via le navigateur en saisissant l’URL dans la barre d’adresse, ce qui permet à la personne malveillante de sortir du répertoire racine et de ceux du serveur principal. L’attaque peut par ailleurs être menée sur le partie frontale de l’application web grâce à des portails d’entrée.

Pour vous prémunir de ce type d’attaque, validez les entrées utilisateur sur votre site, supprimez toutes les données douteuses et filtrez les métacaractères. Attention à ne pas laisser dans la racine du document web des fichiers de configuration sensibles. Si un utilisateur suspect demande de créer un fichier, concevez vous-même le chemin complet. Tâchez de normaliser tous les caractères du chemin. Enfin, soignez la programmation du serveur web et adoptez des logiciels de sécurité, des correctifs et des scanners de faille.

Contact sans engagement

Besoin d’information sur les mesures de sécurité php à prendre ? On est là pour vous aider !