Vidéo: 11AWB : Comment sécuriser votre site sur Internet 2025
Si votre application fonctionne sur Apache (plus de la moitié les sites Web sur Internet), vous pouvez envisager d'activer SuExec dans votre configuration Apache. SuExec est un mécanisme intégré à Apache qui permet d'exécuter les scripts en tant qu'utilisateur propriétaire du script, plutôt que de les exécuter en tant qu'utilisateur du serveur Web.
Dans un environnement non-SuExec, tous les scripts sont exécutés sous le même ID utilisateur que le serveur Web lui-même. Malheureusement, un script vulnérable peut donner à un utilisateur malveillant un accès en arrière-plan à l'ensemble du serveur Web, y compris des scripts s'exécutant sur d'autres sites hébergés sur le même serveur.
SuExec tente d'atténuer ce problème en limitant les applications Web à leurs propres zones et en les exécutant sous les ID utilisateur de leurs propriétaires, plutôt que sous l'ID utilisateur du serveur Web. Par exemple, ce script s'exécuterait sous l'ID utilisateur de jsmith:
/ home / ~ jsmith / public_html / scripts / please_hack_me. php
Un utilisateur malveillant pourrait exploiter ce script, mais il n'aurait accès qu'aux fichiers et programmes que l'utilisateur jsmith est autorisé à utiliser. Tous les autres utilisateurs sur le serveur seraient protégés du script non sécurisé de jsmith.
Malheureusement, le fonctionnement de SuExec avec des hôtes virtuels, ou plusieurs sites Web indépendants physiquement situés sur le même serveur Web peut être difficile. SuExec est conçu pour exécuter des scripts qui existent dans la racine du document du serveur Web.
La plupart des hôtes virtuels sont configurés de manière à donner à chaque site Web sa propre racine de document, et la racine du document de chaque site ne se trouve pas sous la racine du document du serveur Web. Pour contourner cette restriction, l'administrateur système doit ajouter la racine du document de chaque hôte virtuel à la variable racine du document du serveur Web dans le fichier de configuration Apache.
SuExec exige également que les scripts PHP soient exécutés en Common Gateway Interface (CGI), ce qui est plus lent que l'exécution de PHP en tant que module précompilé sous Apache. CGI a été le premier modèle exploitable pour les applications Web, et il est toujours utilisé pour des scripts simples. Cependant, une fois que vous quittez le domaine des scripts PHP et que vous commencez à écrire des applications à part entière, vous aurez besoin de l'amélioration des performances de PHP précompilé.
Pour les serveurs Web relativement simples, SuExec peut empêcher une application non sécurisée de piétiner tout le reste. Cependant, dans un environnement plus complexe avec des serveurs virtuels, des modules précompilés et des dizaines ou des centaines d'utilisateurs, vous avez besoin d'un modèle de sécurité un peu plus robuste.
