Ce n’est pas plus intelligent que PHP est l’un des langages de programmation de script de serveur les plus utilisés. Il est logique pour un attaquant de trouver différentes façons de manipuler PHP car il est souvent associé à MySQL et permettre l’accès aux données privées de vos utilisateurs.

En aucun cas, nous ne prétendons PHP est vulnérable ou a des problèmes sérieux par défaut, mais nous devons nous assurer que nous peaufinons PHP de telle sorte qu’il peut être plus robuste que jamais.

1. Supprimer les modules PHP inutiles

Par défaut, vous obtenez un ensemble de PHP modules qui peuvent être utiles dans diverses tâches, mais certains modules inutiles peuvent ne pas être utiles pour chaque projet. Liste disponible PHP modules, utilisez la commande donnée :

$ php -m
Lister Les Modules Php
Lister Les Modules Php

Les modules sont situés à /etc/php.d/ répertoire et peut facilement changer notre répertoire actuel en /etc/php.d/ en utilisant la commande cd suivante.

cd /etc/php.d/

La raison pour laquelle nous changeons de répertoire pour supprimer des modules est que les modules sont nommés de manière assez différente dans le répertoire d’origine. Maintenant, répertoriez les modules disponibles par la commande donnée :

Publicité
$ ls
Vérifier Les Modules Php
Vérifier Les Modules Php

Par exemple, supprimons le boucle module en utilisant la commande donnée :

$ sudo rm -r 20-curl.ini

2. Désactiver l’exécution de code PHP à distance

Dans la plupart des cas, les connexions à distance ne sont pas fiables. En désactivant l’accès à ouvrir wrappers, ils ne peuvent accéder qu’aux fichiers locaux. Pour désactiver fopen, nous devons ouvrir le fichier de configuration PHP en utilisant la commande donnée :

$ sudo nano /etc/php.ini

Maintenant, utilisez CRTL + w et tapez allow_url_fopen qui nous amènera sur des lignes spécifiques à partir desquelles nous désactiverons ces options.

allow_url_fopen=Off
allow_url_include=Off
Désactiver L'Exécution De Code Php À Distance
Désactiver L&Rsquo;Exécution De Code Php À Distance

Une fois que vous avez terminé les modifications, enregistrez le fichier de configuration en CTRL + O et frappe Entrer.

3. Désactiver la fuite d’informations PHP

Lorsqu’il n’est pas désactivé, le monde peut facilement identifier quelle version de PHP est actuellement utilisé par notre serveur Web. Cela peut ne pas sembler un gros problème, mais informer l’attaquant de la version exacte peut être dangereux.

$ sudo nano /etc/php.ini

Maintenant, changez les valeurs par défaut en “Off”.

expose_php=Off
Désactiver La Fuite D'Informations Php
Désactiver La Fuite D&Rsquo;Informations Php

4. Désactiver les journaux d’erreurs PHP

Par défaut, chaque erreur de notre serveur Web est visible par nos visiteurs, y compris les attaquants. Pour nous assurer qu’aucune des erreurs n’est visible par quiconque, nous devons apporter des modifications à notre fichier de configuration PHP.

$ sudo nano /etc/php.ini

Et modifiez le paramètre par défaut d’affichage des journaux d’erreurs en “Off”.

display_errors = Of
Désactiver Les Journaux D'Erreurs Php
Désactiver Les Journaux D&Rsquo;Erreurs Php

Mais que se passe-t-il si vous êtes un développeur et que vous avez besoin de journaux d’erreurs pour résoudre les problèmes de développement ? Ne vous inquiétez pas, il existe un moyen d’obtenir vos fichiers journaux en apportant simplement une légère modification au même fichier de configuration.

Nous devons juste activer log_errors et donner un chemin à error_log où nos fichiers journaux seront stockés.

log_errors=On
error_log=/var/log/httpd/php_scripts_error.log
Activer Les Journaux D'Erreurs En Php
Activer Les Journaux D&Rsquo;Erreurs En Php

5. Contrôle des ressources PHP

Selon nous, la gestion des ressources est la partie la plus cruciale lors de la sécurisation PHP. Ici, nous allons allouer une quantité fixe de temps d’exécution, de temps d’entrée et de limite de mémoire, donc si notre script est compromis d’une manière ou d’une autre, l’exécution sera arrêtée après un certain temps.

Nous avons choisi 25 secondes pour le temps d’exécution et d’entrée et 30 Mo de limite de mémoire. Bien sûr, vous pouvez le personnaliser selon vos besoins.

max_execution_time = 25
max_input_time = 25
memory_limit = 30M
Contrôle Des Ressources Php
Contrôle Des Ressources Php

6. Restreindre l’accès aux fichiers PHP

Pour restreindre l’accès aux fichiers, nous allons activer open_basedir ce qui garantira que PHP ne peut inclure que des fichiers de nos répertoires répertoriés.

Important: Cela bloquera tous les autres répertoires et nous obligera à ajouter manuellement des répertoires importants, ce qui inclut également l’ajout de fichiers temporaires et de répertoires de session.

open_basedir = "/home/sagar/public_html:/var/lib/php/tmp_upload:/var/lib/php/session"
Contrôler L'Accès Aux Fichiers Php
Contrôler L&Rsquo;Accès Aux Fichiers Php

7. Configurer les téléchargements de fichiers PHP

Si votre application ne nécessite pas de télécharger des fichiers du côté de l’utilisateur, il est toujours conseillé de désactiver les téléchargements de fichiers. Cela empêche les attaquants de télécharger des scripts dangereux qui pourraient finir par endommager l’ensemble de l’application.

file_uploads = Off

Mais que se passe-t-il si votre application est conçue pour obtenir des fichiers du côté de l’utilisateur ? Dans ce cas, vous devez activer les téléchargements de fichiers, mais essayez de réduire l’espace maximum et de réduire le nombre maximum de fichiers pouvant être téléchargés à partir d’une seule requête.

file_uploads = On
upload_max_filesize = 1M
max_file_uploads = 1
Contrôler Les Téléchargements De Fichiers Php
Contrôler Les Téléchargements De Fichiers Php

En PHP, par défaut, les fichiers temporaires sont placés dans un répertoire que tous les utilisateurs du système peuvent écrire. L’emplacement par défaut doit être basculé vers un emplacement plus sécurisé et assurez-vous qu’il ne se trouve pas dans la racine Web.

Comme nous avons utilisé open_basedirnous utiliserons le même emplacement que celui que nous avons déjà ajouté à la liste blanche.

upload_tmp_dir = /var/lib/php/tmp_upload

8. Désactiver les fonctions PHP dangereuses

PHP a diverses fonctions activées par défaut et peut être utile à des fins de développement. Mais de nombreuses fonctions peuvent être utilisées par les pirates pour exploiter notre serveur Web et les désactiver ajoutera une couche de sécurité.

Nous avons un ensemble de fonctions désactivées et assurez-vous de les vérifier avant d’apporter des modifications au fichier de configuration.

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Désactiver Les Fonctions Php Indésirables
Désactiver Les Fonctions Php Indésirables

9. Modifier le répertoire du cache SOAP

Comme nous avons changé le répertoire temporaire et la session par défaut, il en va de même pour le DU SAVON cache car il ne doit pas être enregistré dans le répertoire par défaut. Assurez-vous qu’il est enregistré dans un endroit sûr.

soap.wsdl_cache_dir = /var/lib/php/soap_cache
Modifier Le Répertoire Du Cache Soap
Modifier Le Répertoire Du Cache Soap

10. Contrôler la taille PHP POST

En contrôlant PUBLIER taille, nous pouvons sécuriser notre serveur contre un pirate informatique tentant de coaguler les ressources du serveur en envoyant d’énormes fichiers. Cela nous évite des pannes de serveur indésirables et un temps de réponse lent.

post_max_size=4M
Limiter La Taille Php Post
Limiter La Taille Php Post

11. Protégez les configurations PHP

Lors de la suppression des fichiers inutiles, nous supprimons souvent certains fichiers cruciaux ou même des répertoires. Nous devons donc modifier les paramètres de manière à ce que même les utilisateurs root ne puissent pas les supprimer. Pour créer des fichiers et des répertoires, nous utiliserons chattr avec différents drapeaux.

Une fois que vous avez utilisé la commande donnée, vous ne pouvez plus modifier un fichier spécifique ou le supprimer.

$ sudo chattr +i /etc/php.ini

Lors de la tentative de suppression d’un fichier immuable, une erreur indiquant « Opération non autorisée”.

$ sudo rm -r /etc/php.ini
Erreur D'Opération Non Autorisée
Erreur D&Rsquo;Opération Non Autorisée

Mais que se passe-t-il si vous voulez continuer à écrire ces fichiers tout en les rendant immuables ? Vous pouvez facilement y parvenir en utilisant le +a drapeau au lieu de +i.

$ sudo chattr +a /etc/php.ini

Il peut y avoir des cas où vous n’avez plus besoin de l’ancien fichier de configuration et dans ce cas, nous devons supprimer les attributs.

$ sudo chattr -i /etc/php.ini

De même, si vous alliez avec +a attributs en train de rendre les fichiers immuables, vous pouvez l’inverser en utilisant la commande donnée :

$ sudo chattr -a /etc/php.ini

12. Utiliser des certificats SSL pour HTTPS

De nos jours, chaque navigateur moderne tel que Google Chrome, Firefox, Opera et autres recommande d’utiliser HTTPS pour les serveurs Web. Comme HTTPS fournit un canal d’accès sécurisé et crypté pour les sites non fiables, nous pouvons offrir une expérience fiable à nos utilisateurs.

En ajoutant HTTPSnous pouvons nous protéger contre XSS attaques, y compris empêcher les pirates de lire les données transportées à l’aide de codes.

Pour activer HTTPS, nous installerons et utiliserons le logiciel gratuit Encryptons le certificat SSL sur le serveur.

$ sudo dnf install epel-release 
$ sudo dnf install certbot python3-certbot-apache mod_ssl
$ sudo certbot --apache -d domain.com   [For Apache]
$ sudo certbot --nginx -d domain.com    [For Nginx]

13. Mettre à jour PHP régulièrement

Comme il s’agit d’un langage open source, il est corrigé presque quotidiennement. Cela peut ne pas sembler être une étape importante, mais peut vous éviter une vulnérabilité majeure. Assurez-vous donc de garder vos packages PHP à jour, ce qui vous évitera de nombreuses vulnérabilités possibles.

# yum update & yum upgrade    [On RHEL-based systems]
# apt update && apt upgrade   [On Debian-based systems]

C’était notre point de vue sur la façon dont vous pouvez facilement améliorer la sécurité de PHP dans les systèmes Linux. Tout au long de ce tutoriel, nous avons essayé de simplifier au maximum les choses et si vous avez encore des doutes, n’hésitez pas à nous le faire savoir dans les commentaires.

Rate this post
Publicité
Article précédentPourquoi la plupart des pièces et gadgets PC sont-ils noirs ? (2022)
Article suivant10 citations profondes pour vous aider à être plus positif
Avatar De Violette Laurent
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici