Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

Site de communication et d'échange d'informations (techniques & pédagogiques) entre les formateurs E.I.Te et les clients ou prospects

Publicité

Sécuriser une application Web développée en PHP

Protéger un développement PHP contre les attaques passe notamment par l'application de certaines règles de configuration. La mise en œuvre d'une stratégie de programmation défensive est un plus.

 
Le fichier de configuration PHP
En vue de sécuriser un site Web ou une application développée en PHP, certaines règles simples sont applicables lors de l'étape de configuration de l'environnement d'exécution.
Pour modifier les paramètres de PHP, il suffit d'éditer le fichier php.ini qui se trouve dans /etc/phpX/apache/php.ini en remplaçant le X par 4 ou 5 selon la version de PHP utilisée.

 1) Mettre la variable register_globals en off
Quand register_globals est à on, les variables EGPCS (Environnement, GET, POST, Cookie, Server) sont enregistrées comme des variables globales. Ainsi, une URL contenant une variable, par exemple http://www.site.com/index.php?var=test crée une variable $var sans besoin d'autre code. De manière général, il faut éviter au maximum les variables globales et utiliser des flots de données explicites.

2) Limiter l'accès aux répertoires
Le safe mode est le mode de sécurité de PHP. Lorsqu'il est activé, il empêche un script d'accéder à des fichiers situés en dehors du dossier où se trouve le site. La vérification est faite en vérifiant le nom du propriétaire du fichier et celui du script. ....

3) display_error=off et log_errors=on
Désactiver l'affichage des erreurs pour éviter d'afficher des informations aux utilisateurs en mettant la variable display_error en off. Il vaut mieux les inscrire dans un journal d'erreurs avec log_errors=on.

4) magic_quotes_gpc=on
Ce paramètre, lorsqu'il est mis sur on, ajoute le caractère "\" devant les apostrophes, les guillemets et le caractère nul. Il empêche ainsi le système d'interpréter une requête qu'un utilisateur malintentionné ......

5) Changer le répertoire temporaire des identifiants de session
......

6) Activer session.use_only_cookies
Cette variable indique si les identifiants de session doivent être utilisés seulement avec des cookies. .... 

 Renforcer son code avec la programmation défensive
La programmation défensive est un état d'esprit qui consiste à écrire son code de façon à s'attendre au pire. ...

1) L'injection de données

Pour éviter que des données non voulues soient injectées dans le code (requêtes SQL, commandes Shell, cross site scripting), il faut vérifier chaque donnée avant de les passer en paramètres à des fonctions .......  

2) Journaliser toutes les erreurs
Le journal d'erreur est un bon indicateur pour repérer les attaques. Pour enregistrer toutes les erreurs d'exécution, ajouter la ligne <?php error_reporting(E_ALL); ?> au début de chaque page de code.  

 Prendre garde à l'environnement réseau et d'hébergement
Sur le plan de la plate-forme d'hébergement, il est utile de réaliser certaines actions pour se prémunir des attaques.

Des outils comme les reverse proxy permettent d'écarter certaines requêtes ...
Utiliser un pare-feu pour bloquer les connexions sortantes depuis le serveur Web, afin d'éviter l'inclusion de fichiers PHP distants (php include).
Attention aux paramètres de sécurité des serveurs mutualisés. .......

Tout l'article sur Le Journal du Net :
http://www.journaldunet.com/developpeur/php/tutoriel-pratique/securiser-une-application-web-developpee-en-php.shtml

Publicité
Retour à l'accueil
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article