Maison développement back-end tutoriel php Les dix principaux points de sécurité PHP recommandés que les administrateurs Linux doivent connaître

Les dix principaux points de sécurité PHP recommandés que les administrateurs Linux doivent connaître

Dec 28, 2016 pm 05:48 PM
php

PHP est l'un des langages de programmation de script les plus utilisés. La part de marché en dit long sur sa position dominante. Le fait que PHP 7 ait été lancé rend ce langage de programmation encore plus attractif pour les développeurs actuels. Malgré quelques changements, de nombreux développeurs sont sceptiques quant à l'avenir de PHP. L'une des raisons est la sécurité de PHP.

Les administrateurs Linux doivent connaître les dix principaux points de sécurité PHP
PHP est l'un des langages de script les plus utilisés. La part de marché en dit long sur sa position dominante. Le fait que PHP 7 ait été lancé rend ce langage de programmation encore plus attractif pour les développeurs actuels. Malgré quelques changements, de nombreux développeurs sont sceptiques quant à l'avenir de PHP. L'une des raisons est la sécurité de PHP.

La sécurité de PHP est une préoccupation majeure pour les développeurs. Bien que PHP offre une sécurité solide de l’intérieur vers l’extérieur, il appartient aux développeurs d’implémenter correctement ces mécanismes de sécurité. Nous présenterons plusieurs points de sécurité PHP pour les administrateurs Linux dans cet article. Ces points vous aideront à sécuriser votre application web et à assurer son bon fonctionnement sur le long terme.

Avant de commencer, il est nécessaire de comprendre le système auquel nous avons affaire. À des fins de démonstration, nous utilisons Fedora. Cependant, ces points devraient s'appliquer aux versions d'Ubuntu ou à toute autre distribution Linux. Consultez le manuel de la distribution de votre système d'exploitation pour plus d'informations.

Examinons de plus près plusieurs fichiers clés de notre environnement système. Votre fichier doit ressembler ou correspondre à ce qui suit :

Serveur web par défaut : Apache

DocumentRoot : /var/www/html

Fichier de configuration PHP : /etc/php . ini

Répertoire de configuration étendu : /etc/php.d/

Fichier de sécurité : /etc/php.d/security.ini

Ces conseils protégeront votre site Web, évitez différents types d'attaques courantes, telles que l'injection SQL, XSS, les attaques de falsification de requêtes intersites, eval() et les attaques par téléchargement de fichiers. Une liste des attaques courantes peut être trouvée ici (https://www.sitepoint.com/top-10-php-security-vulnerabilities/).

1. Supprimez les modules inutiles.

PHP est livré avec un module php intégré. Ils sont utiles pour de nombreuses tâches, mais tous les projets n’en nécessitent pas. Entrez simplement la commande suivante pour afficher les modules PHP disponibles :

# php - m

Une fois que vous avez consulté la liste, vous pouvez désormais supprimer les modules inutiles. La réduction du nombre de modules permet d'améliorer les performances et la sécurité des applications Web sur lesquelles vous travaillez.

2. Limiter les fuites d'informations PHP.

Il est courant que les plateformes divulguent des informations clés. Par exemple, PHP divulgue des informations telles que la version et le fait qu'il a été installé sur le serveur. Ceci peut être réalisé via la commande expose_php. Pour éviter les fuites, vous devez désactiver cette commande dans /etc/php.d/security.ini.

expose_php=Off

Si vous avez besoin de connaître la version et son statut, exécutez simplement une simple commande Curl sur l'adresse du site Web pour obtenir les informations.

Curl - I http://www.kubiji.cn/index.php

La commande précédente renverra les informations suivantes :

HTTP/1.1 200 OK

X-Powered-By : PHP/7.0.10

Content-type : text/html; charset=UTF-8

3.

L'exécution de code à distance est l'une des vulnérabilités de sécurité courantes dans les systèmes de sécurité PHP. Par défaut, l'exécution de code à distance est activée sur votre système. La commande "allow_url_fopen" permet à des fonctions telles que les wrappers fopen require, include ou compatibles URL d'accéder directement aux fichiers PHP. L'accès à distance est obtenu grâce à l'utilisation de protocoles HTTP ou FTP, ce qui empêche le système de se défendre contre les vulnérabilités de sécurité par injection de code.

Pour vous assurer que votre système est sûr, sécurisé et éloigné de l'exécution de code à distance, vous pouvez définir cette commande sur « Désactivé », comme indiqué ci-dessous :

Allow_url_fopen=Off

allow_url_include =Off

4. Enregistrez les erreurs PHP.

Un autre moyen simple de renforcer la sécurité de votre application web est de ne pas afficher d'erreurs aux visiteurs. Cela garantira que les pirates ne pourront pas du tout compromettre la sécurité du site Web. Il doit être modifié dans le fichier /etc/php.d/security.ini.

display_errors=Off

Maintenant, vous pensez peut-être : après avoir terminé cette étape, "Comment les développeurs peuvent-ils déboguer sans l'aide de messages d'erreur ?" Il leur suffit de définir la commande log_errors sur "On" dans le fichier security.ini.

log_errors=On

error_log=/var/log/httpd/php_scripts_error.log

5. Contrôler raisonnablement les ressources.

Pour assurer la sécurité de votre application, il est important de contrôler les ressources. Pour garantir une exécution et une sécurité correctes, vous devez restreindre l'exécution des scripts PHP. De plus, il devrait y avoir une limite sur le temps passé à analyser les données de la demande. Si le temps d'exécution est contrôlé, d'autres ressources telles que la mémoire utilisée par le script doivent également être configurées en conséquence. Toutes ces métriques peuvent être gérées en éditant le fichier security.ini.

# défini en secondes

max_execution_time = 25

max_input_time = 25

memory_limit = 30M

6. Désactivez les fonctions PHP dangereuses

PHP est livré avec des fonctions utiles pour le développement, mais il peut également être utilisé par des pirates pour s'introduire dans le Web Un grand nombre de fonctions pour l'application. La désactivation de ces fonctions améliore la sécurité globale et garantit que vous n'êtes pas exposé à des fonctions PHP dangereuses.

Pour ce faire, vous devez d'abord éditer le fichier php.ini. Une fois dans le fichier, recherchez la commande Disable_functions et désactivez les fonctions dangereuses à l'intérieur. Pour ce faire, il vous suffit de copier/coller le code suivant.

disable_functions =exec,passthru,

shell_exec,system,proc_open,popen,curl_exec,

curl_multi_exec,parse_ini_file,show_source

Vous pouvez ici ( https ://www.eukhost.com/blog/webhosting/dangerous-php-functions-must-be-disabled/) Apprenez-en davantage sur la désactivation des fonctions PHP dangereuses.

7. Téléchargez des fichiers.

Si votre application ne nécessite pas de télécharger de fichiers, désactiver la possibilité de télécharger des fichiers peut contribuer à améliorer la sécurité. Si vous souhaitez interdire aux utilisateurs de télécharger des fichiers, il vous suffit de modifier le fichier security.ini dans le répertoire /etc/php.d/ et de définir la commande file_uploads sur OFF.

file_uploads=Off

8. Gardez la version à jour.

Les développeurs travaillent 24h/24 et 7j/7 pour mettre à jour la technologie que vous utilisez. Il en va de même pour PHP. Puisqu’il dispose d’une communauté open source, des correctifs et des correctifs sont publiés régulièrement. La version mise à jour fournit également des correctifs de sécurité pour les vulnérabilités du premier jour et d'autres vulnérabilités de sécurité. Si vous vous souciez de la sécurité des applications, assurez-vous toujours que votre solution PHP est à jour. De plus, l’application des derniers correctifs à d’autres technologies connexes peut garantir une sécurité maximale.

9. Contrôler l'accès au système de fichiers.

Par défaut, PHP peut utiliser des fonctions telles que fopen() pour accéder aux fichiers. L'accès est fourni par la commande open_basedir. Tout d’abord, définissez toujours la commande open_basedir sur le répertoire /var/www/html. Le définir sur n’importe quel autre répertoire peut entraîner des problèmes de sécurité.

open_basedir="/var/www/html/"

10. Contrôler la taille du POST.

Notre dernier point de sécurité PHP est la fonction de contrôle de la taille POST. La fonction HTTP POST utilise le navigateur du client pour envoyer des données au serveur Web. Par exemple, un utilisateur peut télécharger un certificat, qui est ensuite envoyé au navigateur Web pour traitement. Tout fonctionnait bien jusqu'au jour où un pirate informatique tenta d'envoyer un énorme fichier qui épuisa les ressources du serveur. Cela entraînera très probablement un crash du serveur ou une réponse lente. Pour protéger le serveur de cette vulnérabilité, la taille du POST doit être définie. La taille du POST peut être définie dans le fichier /etc/php.d/security.ini.

post_max_size=1k

Conclusion

La sécurité est l'un des problèmes les plus préoccupants pour les développeurs Web et les administrateurs Linux. Si vous prenez les points ci-dessus, vous pourrez renforcer la sécurité de votre environnement de développement et de vos applications web PHP. Si vous pensez que nous avons manqué quelque chose d'important, veuillez laisser un message pour l'ajouter.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Expliquez les jetons Web JSON (JWT) et leur cas d'utilisation dans les API PHP. Apr 05, 2025 am 12:04 AM

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Programme PHP pour compter les voyelles dans une chaîne Programme PHP pour compter les voyelles dans une chaîne Feb 07, 2025 pm 12:12 PM

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

7 fonctions PHP que je regrette de ne pas connaître auparavant 7 fonctions PHP que je regrette de ne pas connaître auparavant Nov 13, 2024 am 09:42 AM

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Expliquez la liaison statique tardive en PHP (statique: :). Expliquez la liaison statique tardive en PHP (statique: :). Apr 03, 2025 am 12:04 AM

Liaison statique (statique: :) ​​implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Quelles sont les méthodes PHP Magic (__construct, __ destruct, __ call, __get, __set, etc.) et fournir des cas d'utilisation? Apr 03, 2025 am 12:03 AM

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

See all articles