Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
serveur-debian-securite:securiser-php [16/08/2015 16:26] – créée zonewebmaster | serveur-debian-securite:securiser-php [30/01/2020 18:08] (Version actuelle) – zonewebmaster | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{htmlmetatags> | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-og: | ||
+ | metatag-article: | ||
+ | metatag-article: | ||
+ | metatag-article: | ||
+ | metatag-article: | ||
+ | }} | ||
+ | |||
====== Sécurisez votre PHP ====== | ====== Sécurisez votre PHP ====== | ||
- | PHP est très souvent installé sur un serveur web car c'est un langage de programmation très couramment utilisé. PHP, comme tout langage de scripts, comporte des failles de sécurités intentionnelles ou non. | + | PHP est très souvent installé sur un serveur web car c'est un langage de programmation très couramment utilisé. PHP, comme tout langage de scripts, comporte des failles de sécurités intentionnelles ou non. Voici comment renforcer **la sécurité de PHP**.\\ |
Ces vulnérabilités s' | Ces vulnérabilités s' | ||
<WRAP center round info 60%> | <WRAP center round info 60%> | ||
- | Fonctionne pour toute version de PHP | + | Fonctionne pour toute version de PHP-FPM |
</ | </ | ||
+ | ===== Pré-requis / Difficultés ===== | ||
- | ===== Interdire des fonctions ===== | + | Il faut au préalable avoir installé PHP-FPM (à partir de la version 5.3) pour utiliser ce guide. |
+ | Toutes les lignes de commandes sont saisies dans un terminal avec accès administrateur //root//. | ||
- | Certaines fonctions de PHP peuvent directement lancer des scripts à distance qui peuvent être malveillant. Il est donc judicieux, surtout si vous ne les utilisez pas, d' | + | {{howhard> |
- | Pour cela, nous allons modifier ou rajouter cette ligne dans le fichier de configuration // | + | |
- | Le fichier de configuration se trouve en général à : // / | + | |
- | < | + | {{ : |
- | disable_functions | + | |
+ | ===== Préambule ===== | ||
+ | |||
+ | Avant de commencer à sécuriser votre version de PHP, il est important de connaître la version PHP que vous avez installé sur votre machine avec la ligne de commande suivante.\\ | ||
+ | < | ||
+ | versionPHP=" | ||
</ | </ | ||
- | Si vous avez aussi installé le paquet **php5-cli** pour lancer des scripts | + | ===== Interdire l' |
- | Puis relancer le service apache avec la commande suivante | + | Certaines fonctions de PHP peuvent directement lancer des scripts à distance qui peuvent être malveillant. Il est donc judicieux, surtout si vous ne les utilisez pas, d' |
+ | Pour cela, nous allons modifier | ||
+ | Le fichier de configuration se trouve en général à : // / | ||
- | < | + | < |
- | /etc/init.d/apache2/restart | + | if [ ! -e "/etc/php/ |
+ | echo " | ||
+ | ;Dangerous : disable system functions. This can break some administration softwares. | ||
+ | disable_functions = symlink, | ||
+ | " > "/etc/ | ||
+ | fi | ||
</ | </ | ||
+ | Sur //Debian//, nous stockons les fichiers de configuration de **PHP** dans le répertoire // / | ||
+ | Le nom du fichier de configuration s' | ||
+ | Le //if// permet de vérifier si le fichier 50-secure.ini existe ou pas. | ||
+ | Il ne reste plus qu'a redémarrer //php-fpm// et // | ||
+ | <code bash> | ||
+ | service " | ||
+ | service apache2 restart | ||
+ | </ | ||
+ | ===== Supprimer l' | ||
- | ===== Vérification des paramètres par défaut ===== | + | Nous pouvons aussi supprimer l' |
+ | <code bash> | ||
+ | if [ ! -e "/ | ||
+ | echo " | ||
+ | ; Disable PHP exposure | ||
+ | expose_php | ||
+ | " > "/ | ||
+ | fi | ||
+ | </ | ||
+ | Et nous relançons //php-fpm// et // | ||
+ | <code bash> | ||
+ | service " | ||
+ | service apache2 restart | ||
+ | </ | ||
- | Par mesure de sécurité, il vaut mieux vérifier les paramètres | + | ===== Vérification des paramètres |
- | //safe_mode = Off// | + | Par mesure de sécurité, il vaut mieux vérifier les paramètres suivants dans les fichiers |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | Pour le paramètre // | + | <code php> |
+ | safe_mode = Off | ||
+ | safe_mode_gid = Off | ||
+ | memory_limit = -1 | ||
+ | display_errors = Off | ||
+ | display_startup_errors = Off | ||
+ | register_globals = Off | ||
+ | magic_quotes_gpc = Off | ||
+ | magic_quotes_runtime = Off | ||
+ | allow_url_fopen = Off | ||
+ | allow_url_include = Off | ||
+ | </ | ||
+ | Pour le paramètre // | ||
Pour le paramètre // | Pour le paramètre // | ||
+ | ===== Aller plus loin ===== | ||
+ | |||
+ | Si vous avez aussi installé le paquet **php-cli** pour lancer des scripts PHP directement en ligne de commande (une tâche CRON par exemple), vous pouvez modifier les commandes ci-dessus pour sécuriser **php-cli**. Il suffit de remplacer **fpm** par **cli** dans les lignes de commandes. | ||
+ | |||
+ | Une fois les modifications effectuées, | ||
+ | |||
+ | ===== Notes de version ===== | ||
+ | |||
+ | * [27/ | ||
+ | * [30/ | ||
+ | |||
+ | ===== Auteurs et sources ===== | ||
+ | |||
+ | * Auteur : [[: | ||
+ | |||
+ | ===== Navigation ===== | ||
+ | |||
+ | {{page>: | ||
+ | {{page>: | ||
+ | |||
+ | <nspages -h1 -exclude: |