


Comment exécuter des commandes racine en toute sécurité à partir d'applications PHP ?
Exécuter les commandes racine de manière transparente via PHP
Exécuter les commandes racine en toute sécurité est une exigence courante dans les applications Web. Dans cet article, nous examinerons une solution qui vous permet d'exécuter des commandes root avec un accès utilisateur restreint, améliorant ainsi la sécurité tout en répondant aux exigences fonctionnelles.
Au départ, l'approche consistait à accorder à l'utilisateur Apache les privilèges root. Cependant, cela pose de sérieux risques pour la sécurité et est fortement déconseillé. Au lieu de cela, nous utiliserons une alternative plus sécurisée.
Notre solution consiste à créer un wrapper binaire qui exécutera les commandes souhaitées en tant que root. Voici un guide étape par étape pour configurer cela :
-
Créer un script avec des commandes racine :
Créer un script qui contient le commandes racine que vous devez exécuter. Par exemple, pour redémarrer le service SSHD, créez un script nommé php_shell.sh avec le contenu suivant :
#!/bin/sh /sbin/service sshd restart
-
Autorisations de script sécurisées :
Définissez le propriétaire de php_shell.sh sur root et accordez les autorisations d'écriture uniquement à la racine utilisateur :
chown root php_shell.sh chmod u=rwx,go=xr php_shell.sh
-
Créer un wrapper binaire :
Ce binaire exécutera notre php_shell.sh avec les privilèges root. Créez un fichier wrapper.c avec le code suivant :
#include <stdlib.h> #include <sys> #include <unistd.h> int main (int argc, char *argv[]) { setuid (0); system ("/bin/sh /path/to/php_shell.sh"); return 0; }</unistd.h></sys></stdlib.h>
-
Compilez et définissez les autorisations :
Compilez le fichier wrapper.c et définissez les autorisations correctes, y compris le bit suid :
gcc wrapper.c -o php_root chown root php_root chmod u=rwx,go=xr,+s php_root
En suivant En suivant ces étapes, vous disposerez d'un wrapper binaire (php_root) qui peut exécuter les commandes root comme spécifié dans php_shell.sh. Cela fournit un moyen sécurisé d'exécuter des commandes racine à partir de vos applications PHP sans compromettre la sécurité du système.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Le délai d'expiration de session absolue commence au moment de la création de session, tandis qu'un délai d'expiration inactif de session démarre au moment de la non-opération de l'utilisateur. Le délai d'expiration de session absolue convient aux scénarios où un contrôle strict du cycle de vie de la session est nécessaire, tels que les applications financières; Le délai d'attente de session inactif convient aux applications qui souhaitent que les utilisateurs maintiennent leur session active pendant longtemps, comme les médias sociaux.

La défaillance de la session du serveur peut être résolue en suivant les étapes: 1. Vérifiez la configuration du serveur pour vous assurer que la session est correctement définie. 2. Vérifiez les cookies des clients, confirmez que le navigateur le prend en charge et l'envoyez-le correctement. 3. Vérifiez les services de stockage de session, tels que Redis, pour vous assurer qu'ils fonctionnent normalement. 4. Examiner le code de demande pour assurer la logique de session correcte. Grâce à ces étapes, les problèmes de conversation peuvent être diagnostiqués et réparés efficacement et l'expérience utilisateur peut être améliorée.

Session_Start () IsCrucialInPhpFormanAgingUsersessions.1) ItinitiateSanEwSessionIfNoneExists, 2) ConsomaSanExistingSession, and3) SetSasessionCooKieforContinuityAcrossrequests, permettant aux applications liées à la réaction et à la personne.

La définition de l'indicateur httponly est cruciale pour les cookies de session car il peut effectivement empêcher les attaques XSS et protéger les informations de session utilisateur. Plus précisément, 1) l'indicateur httponly empêche JavaScript d'accéder aux cookies, 2) l'indicateur peut être réglé via Setcookies et Make_Response dans PHP et FLASK, 3) Bien qu'il ne puisse pas être empêché de toutes les attaques, elle devrait faire partie de la politique de sécurité globale.

PhpSessionsSsolvetheproblemOf-MainainingStateCrossMultiplehttprequestsByStoringDataontheserverAndassociatingitwithauniquesessionId.1) ils storentaserver, généralement infilesordatabases, et de lasse de lastoredinacookietatevevedata.2)

PhpSessionsCanstorestrings, Numbers, Arrays, Andobject.1.Strings: TextDatalikeUserames.2.Numbers: IntegersorFloatsForCounters.3.arrays: listslikeshoppingcarts.4.Objects: complexestructuresthataReSerialized.

TostartaphpSession, usessession_start () aTTheScript'sbeginning.1) PlaceItBeForeanyOutputToSetTheSessionCooKie.2) USESSIONSFORUSERDATALIKELOGINSTATUSORSHOPPINGSCARS.3) RegegeraSesessionIdStopreventfixationAtTACKS.4)

La régénération de session fait référence à la génération d'un nouvel ID de session et à l'invalidation de l'ancien ID lorsque l'utilisateur effectue des opérations sensibles en cas d'attaques fixes de session. Les étapes de mise en œuvre incluent: 1. Détectez les opérations sensibles, 2. Générer un nouvel ID de session, 3. Détruiser l'ancien ID de session, 4. Mettre à jour les informations de session côté utilisateur.


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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

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

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

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code
