Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
serveur-debian-securite:securiser-php [15/11/2017 00:50] – Harmonisation des pages zonewebmaster | serveur-debian-securite:securiser-php [30/01/2020 18:06] – 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 ===== | ||
- | ===== Préambule ===== | + | 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//. | ||
- | Avant de commencer à sécuriser PHP, sachez qu'il existe plusieurs méthodes pour installer PHP. Ces méthodes influences la façon de redémarrer le services PHP. | + | {{howhard> |
- | Voici un petit tour rapide des méthodes de redémarrage du service PHP. | + | {{ : |
- | ==== PHP5 est un module de Apache2 | + | ===== Préambule ===== |
- | + | ||
- | La méthode est simple | + | |
- | < | + | 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.\\ |
- | /etc/init.d/apache2 restart | + | < |
+ | versionPHP=" | ||
</ | </ | ||
- | ou pour les versions | + | ===== Interdire l' |
- | < | + | 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 la configuration de // | ||
+ | Le fichier de configuration se trouve en général à : // / | ||
+ | |||
+ | < | ||
+ | if [ ! -e "/ | ||
+ | echo " | ||
+ | ;Dangerous : disable system functions. This can break some administration softwares. | ||
+ | disable_functions = symlink, | ||
+ | " > "/ | ||
+ | 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 | service apache2 restart | ||
</ | </ | ||
- | ==== php5-fpm est installé | + | ===== Supprimer l' |
- | Ici, c'est un poil plus complexe, il faut relancer | + | Nous pouvons aussi supprimer l'affichage de la version de PHP. Même principe que précédemment. |
+ | <code bash> | ||
+ | if [ ! -e "/etc/ | ||
+ | echo " | ||
+ | ; Disable PHP exposure | ||
+ | expose_php = Off | ||
+ | " > "/etc/php/${versionPHP}/ | ||
+ | fi | ||
+ | </code> | ||
- | < | + | Et nous relançons //php-fpm// et // |
- | service | + | < |
+ | service | ||
service apache2 restart | service apache2 restart | ||
</ | </ | ||
+ | ===== Vérification des paramètres par défaut ===== | ||
- | ===== Interdire des fonctions ===== | + | Par mesure de sécurité, il vaut mieux vérifier les paramètres suivants dans les fichiers // |
- | 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 ou rajouter cette ligne dans le fichier de configuration //php.ini//. | + | safe_mode = Off |
- | Le fichier de configuration se trouve en général à : // / | + | safe_mode_gid = Off |
- | + | memory_limit = -1 | |
- | < | + | display_errors = Off |
- | disable_functions | + | display_startup_errors = Off |
+ | register_globals = Off | ||
+ | magic_quotes_gpc = Off | ||
+ | magic_quotes_runtime = Off | ||
+ | allow_url_fopen = Off | ||
+ | allow_url_include | ||
</ | </ | ||
+ | Pour le paramètre // | ||
+ | Pour le paramètre // | ||
- | Si vous avez aussi installé le paquet **php5-cli** pour lancer des scripts PHP directement en ligne de commande, il existe un autre fichier de configuration : // / | + | ===== Aller plus loin ===== |
- | Une fois les modifications effectuées, | + | Si vous avez aussi installé |
+ | Une fois les modifications effectuées, | ||
- | ===== Vérification des paramètres par défaut ===== | + | ===== Notes de version |
- | + | ||
- | Par mesure | + | |
- | + | ||
- | //safe_mode = Off// | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | // | + | |
- | + | ||
- | Pour le paramètre // | + | |
- | Pour le paramètre // | + | |
+ | * [27/ | ||
+ | * [30/ | ||
===== Auteurs et sources ===== | ===== Auteurs et sources ===== | ||
Ligne 79: | Ligne 116: | ||
===== Navigation ===== | ===== Navigation ===== | ||
- | * [[: | + | {{page> |
- | * [[:serveur-debian-securite]] | + | {{page> |
- | * [[:serveur-debian-general]] | + | |
- | * [[:serveur-debian-automatisation]] | + | |
- | * [[: | + | |
- | * [[: | + | |
- | * [[: | + | |
- | * [[: | + | |
- | * [[: | + | |
- | * [[: | + | |
- | * [[: | + | |
<nspages -h1 -exclude: | <nspages -h1 -exclude: |