Plusieurs détails de sécurité courants liés à PHP
Nous avons installé PHP manuellement. Le fichier de configuration par défaut de PHP se trouve dans /usr/local/apache2/conf/php.ini. Notre chose la plus importante est de configurer le contenu de php.ini afin que nous puissions exécuter PHP de manière plus sûre. . Les paramètres de sécurité dans l'ensemble de PHP visent principalement à empêcher les attaques de phpshell et d'injection SQL. Discutons-en lentement. Nous utilisons d'abord n'importe quel outil d'édition pour ouvrir /etc/local/apache2/conf/php.ini Si vous l'installez d'une autre manière, le fichier de configuration peut ne pas se trouver dans ce répertoire.
(1) Activer le mode sans échec de PHP
Le mode sans échec de PHP est un mécanisme de sécurité intégré très important qui peut contrôler certaines fonctions de PHP, telles que le système ( ),
contrôle également les autorisations de nombreuses fonctions d'opération de fichiers et n'autorise pas certains fichiers clés, tels que /etc/passwd,
mais le php.ini par défaut est Si le mode sans échec est pas activé, nous l'allumons :
safe_mode = on
(2) Sécurité du groupe d'utilisateurs
Lorsque safe_mode est activé, safe_mode_gid est désactivé, puis le php script Le fichier est accessible et les utilisateurs du même groupe
peuvent également accéder au fichier.
Il est recommandé de le définir sur :
safe_mode_gid = off
Si vous ne le définissez pas, nous ne pourrons peut-être pas exploiter les fichiers du répertoire de notre site Web serveur. Par exemple, nous devons
exploiter les fichiers lors de l'exploitation.
(3) Répertoire personnel pour exécuter des programmes en mode sans échec
Si le mode sans échec est activé mais que vous souhaitez exécuter certains programmes, vous pouvez spécifier le programme à exécuté. Répertoire principal :
safe_mode_exec_dir = D:/usr/bin
Généralement, il n'est pas nécessaire d'exécuter un programme, il est donc recommandé de ne pas exécuter le répertoire du programme système. Vous pouvez pointer vers un répertoire,
. puis copiez le programme qui doit être exécuté. Dans le passé, par exemple :
safe_mode_exec_dir = D:/tmp/cmd
Cependant, je recommande de n'exécuter aucun programme, vous pouvez alors pointer vers notre répertoire Web :
safe_mode_exec_dir = D:/usr/www
(4) Inclus dans le fichier en mode sans échec
Si vous souhaitez inclure certains fichiers publics en mode sans échec, modifiez les options :
safe_mode_include_dir = D:/usr/www/include/
En fait, généralement les fichiers inclus dans les scripts php sont déjà dans le programme lui-même. Une fois écrits, cela peut être paramétré en fonction de besoins spécifiques.
(5) Contrôlez les répertoires auxquels les scripts PHP peuvent accéder
Utilisez l'option open_basedir pour contrôler que les scripts PHP ne peuvent accéder qu'aux répertoires spécifiés, ce qui peut empêcher les scripts PHP de l'accès aux
Fichiers auxquels il ne faut pas accéder limite les dommages de phpshell dans une certaine mesure. Nous pouvons généralement le configurer pour accéder uniquement au répertoire du site :
open_basedir = D:/usr/www
(6) . Fermer les fonctions dangereuses
Si le mode sans échec est activé, l'interdiction des fonctions n'est pas nécessaire, mais nous la considérons toujours pour des raisons de sécurité. Par exemple,
nous pensons que nous ne voulons pas exécuter de fonctions php, notamment system() qui peut exécuter des commandes, ou des fonctions telles que
phpinfo() qui peuvent afficher des informations php, alors nous pouvez les désactiver :
disable_functions = system,passthru,exec,shell_exec,popen,phpinfo
Si vous souhaitez désactiver des opérations sur les fichiers et les répertoires, vous pouvez désactiver de nombreuses opérations sur les fichiers
disable_functions = chdir,chroot,dir,getcwd,opendir,readdir ,scandir,fopen,unlink,delete,copy,mkdir, rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown
Ce qui précède n'est qu'une liste de quelques fonctions de traitement de fichiers peu utilisées , vous pouvez également combiner la fonction de commande d'exécution ci-dessus avec cette fonction,
peut résister à la plupart des phpshells.
(7) Fermez la fuite des informations de version PHP dans l'en-tête http
Afin d'empêcher les pirates d'obtenir les informations de version PHP sur le serveur, nous pouvons fermer la fuite de ces informations dans l'en-tête http Header :
expose_php = Off
Par exemple, lorsqu'un hacker telnet www.chinaz.com 80, il ne pourra pas voir les informations PHP.
(8) Fermer l'enregistrement des variables globales
Les variables soumises en PHP, y compris les variables soumises via POST ou GET, seront automatiquement enregistrées en tant que variables globales et peuvent directement accès,
est très dangereux pour le serveur, nous ne pouvons donc pas le laisser être enregistré en tant que variable globale, nous désactivons donc l'option d'enregistrement de la variable globale :
register_globals = Off
Bien sûr , s'il est défini comme ceci, alors vous devez utiliser des méthodes raisonnables pour obtenir les variables correspondantes, comme l'obtention de la variable var soumise par GET,
puis vous devez utiliser $_GET['var'] pour l'obtenir , les programmeurs PHP devraient y prêter attention.
(9) Ouvrez magic_quotes_gpc pour empêcher l'injection SQL
L'injection SQL est un problème très dangereux Dans de petits cas, le backend du site Web sera envahi, et dans des cas plus graves. Dans certains cas, le serveur entier tombera.
Alors soyez prudent. Il y a un paramètre dans php.ini :
magic_quotes_gpc = Off
Ceci est désactivé par défaut. S'il est activé, il convertira automatiquement les requêtes SQL soumises par l'utilisateur
Par exemple. convertir ' en ' Attendez, cela joue un rôle important dans la prévention de l'injection SQL. Par conséquent, nous vous recommandons de le définir sur :
magic_quotes_gpc = On
(10) Contrôle des messages d'erreur
Généralement, PHP génère une erreur lorsqu'il n'est pas connecté à la base de données. ou dans d'autres circonstances. Généralement, le message d'erreur contiendra les informations de chemin du script PHP avant
ou l'instruction SQL de la requête. Ce type d'informations est dangereux s'il est fourni aux pirates, il est donc généralement recommandé. que les serveurs désactivent les invites d'erreur :
display_errors = Off
Si vous souhaitez afficher les messages d'erreur, assurez-vous de définir le niveau d'affichage des erreurs, par exemple, affichez uniquement les informations au-dessus des avertissements :
error_reporting = E_WARNING & E_ERROR
Bien sûr, je recommande toujours de désactiver les invites d'erreur.
(11) Journal des erreurs
Il est recommandé d'enregistrer les informations d'erreur après avoir désactivé display_errors pour faciliter la recherche de la raison du fonctionnement du serveur :
log_errors = On
Définissez également le répertoire dans lequel le journal des erreurs est stocké. Il est recommandé que le journal racine d'Apache soit stocké ensemble :
error_log = D:/usr/local/apache2/logs/php_error. .log
Remarque : Le fichier doit permettre à l'utilisateur et au groupe Apache d'avoir des autorisations en écriture.
Télécharger les privilèges MYSQL
Créer un nouvel utilisateur tel que mysqlstart
net user mysqlstart ****microsoft /add
net localgroup users mysqlstart / del
n'appartient à aucun groupe
Si MYSQL est installé dans d:mysql, donnez à mysqlstart les autorisations de contrôle total
puis définissez les propriétés du service de MYSQL dans le système service , dans les propriétés de connexion, sélectionnez cet utilisateur mysqlstart et entrez le mot de passe, OK.
Redémarrez le service MYSQL, puis MYSQL fonctionnera avec de faibles privilèges.
Si Apache est construit sur une plate-forme Windos, nous devons prêter attention à une autre chose. Apache fonctionne avec les autorisations système par défaut
C'est effrayant et met les gens très mal à l'aise. nous donnerons à Apache Réduire les autorisations.
net user apache ****microsoft /add
net localgroup users apache /del
ok Nous avons créé un utilisateur apche qui n'appartient à aucun groupe.
On ouvre le gestionnaire de l'ordinateur, on sélectionne les services, on clique sur les propriétés du service Apache, on sélectionne se connecter, on sélectionne ce compte, on remplit le compte et le mot de passe créés ci-dessus,
Redémarrer le service Apache, ok, Apache fonctionne avec de faibles autorisations.
En fait, nous pouvons également définir les autorisations de chaque dossier afin que l'utilisateur Apache ne puisse effectuer que ce que nous voulons qu'il fasse, et créer un utilisateur en lecture-écriture distinct pour chaque répertoire.
Il s'agit également d'une méthode de configuration populaire utilisée par de nombreux fournisseurs d'hébergement virtuel. Cependant, cette méthode est excessive lorsqu'elle est utilisée pour empêcher cela.

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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

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.

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

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,

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

Le détournement de la session peut être réalisé via les étapes suivantes: 1. Obtenez l'ID de session, 2. Utilisez l'ID de session, 3. Gardez la session active. Les méthodes pour empêcher le détournement de la session en PHP incluent: 1. Utilisez la fonction Session_RegeReate_id () pour régénérer l'ID de session, 2. Stocker les données de session via la base de données, 3. Assurez-vous que toutes les données de session sont transmises via HTTPS.

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.
