inscription

Abonnez-vous à
la Lettre du risque

La sécurité des pages codées en PHP 

Edité le : 24/11/2014, mis à jour le 02/02/2018.

Pour rappel, le PHP est un langage de codage créé par Rasmus Lerdorf il y a maintenant 15 ans et qui est largement utilisé pour la création de site web dynamiques.

Dans cette fiche pratique, vous trouverez des informations concernant l'audit de sécurité d'un projet codé en PHP.

Le référentiel de sécurité

Liste des risques et vecteurs

Dans le cas d'une attaque, les risques sont multiples. Il peut en résulter la lecture, la modification ou une destruction des données du serveur.

Le risque peut également toucher le serveur et engendrer un arrêt de celui-ci, ou en détourner ses ressources.

Tout ceci peut amener à ternir l'image de l'entreprise : modification du contenu du site internet, divulgation de documents confidentiels...

Les vecteurs d'attaque sont multiples : XSS, CSRF, injections... pour en savoir plus, consultez le document de l'OWASP, voir plus loin.

La matrice de sécurité

Cette matrice permet de visualiser les rapports entre les risques pour l'entreprise et les vecteurs d'attaque :

  DoS Destruction Image
XSS    
CSRF
Redirection  

Les références

Concernant les standards de sécurité applicables aux systèmes d'information, il y en a plusieurs comme l'OWASP, l'ISO 27002, le PCI... il est intéressant de s'appuyer sur ces standards pour élaborer et suivre une ligne de conduite.

Le top 10 de l'OWASP

Tous les ans, l'OWASP liste les 10 attaques les plus utilisées. En voici les principales qui touchent la programmation :

  • Les injections
  • XSS
  • Session et identification
  • Accès direct aux objets
  • CSRF
  • Restriction d'URL
  • Redirections

Consultez le fichier OWASP Top 10 - 2013 ( en français). Vous y trouverez la liste complète des risques, leurs explications et les moyens d'y remédier.
Voir le fichier OWASP Top 10 - 2017 (en).

Méthode et outils

  1. Il faut prendre les points du référentiel
  2. Trouver les points d'entrée
  3. Fouiller le code source
  4. Valider manuellement les points

Il est possible de s'appuyer sur des outils comme Grep ou Tokenizer. Le point de vue de Damien Seguy :

Grep

C'est un programme en ligne de commande de recherche de chaînes de caractères.

  • Rapide, efficace
  • Trouve trop

Tokenizer

Les fonctions tokenizer fournissent une interface au tokenizer PHP interne au moteur Zend. Par l'utilisation de ces fonctions, vous pouvez écrire vos propres outils PHP d'analyse ou de modifications, sans avoir à vous soucier de la spécification du langage au niveau lexical.

  • PHP, sémantique
  • Implique le tri et la reconstruction

Conclusion

Il est conseillé de rédiger son propre référentiel, en s'appuyant sur les existants, il sera ainsi adapté à votre application en particulier, en fonction du domaine d'application, de l'environnement métier...

Convertissez ensuite ce référentiel en code à éviter, et à recommander ; un guide des bonnes pratiques à suivre.

Les problèmes d'un auditeur est le manque de normalisation du code (plusieurs codeurs, évolution du code...). Donc, vérifiez vous-même ce code, et faites des vérifications croisées entre codeurs, vous aurez ainsi une autre vision de votre propre code et les automatismes de codage n'en seront que meilleurs.

Liens

 

Si vous souhaitez participer à cette rubrique en soumettant des articles, ou des liens, n'hésitez pas...

 

PARTAGEZ

UNE SOCIETE A DECOUVRIR

NOVODESIGN
NOVODESIGN
RECARO est spécialiste de l’assise a...
(en savoir plus)

L'ACTUALITE 

DERNIERS PRODUITS

  • Mesures d'exposition aux sources basse fréquence
    Mesures d'exposition aux sources basse fréquence
    Choisir une désignation
    Voir la fiche...

  • Mesures d'exposition aux sources de radiofréquences
    Mesures d'exposition aux sources de radiofréquences
    Investigations & Expertises
    Voir la fiche...

  • Recensement et classification des sources électromagnétiques
    Recensement et classification des sources électromagnétiques
    Investigations & Expertises
    Voir la fiche...

  • Mesures d'exposition aux CEM d'un poste de travail
    Mesures d'exposition aux CEM d'un poste de travail
    Contrôle
    Voir la fiche...

  • D-7000
    D-7000
    Téléphone - avec fonction DATI
    Voir la fiche...