Vérification de la véritable élévation d'administrateur
Bien que les méthodes initiales détectent efficacement les privilèges d'administrateur, elles ne font pas de distinction de manière fiable entre les comptes d'administrateur standard et ceux dotés de privilèges élevés (par exemple, s'exécutant dans vshost.exe). Cette approche améliorée utilise une technique plus robuste.
Utilisation de la classe UacHelper
Nous utilisons la classe UacHelper pour une détermination précise de l'état d'élévation. Cette classe examine minutieusement le registre système pour vérifier l’état du contrôle de compte d’utilisateur (UAC). Il utilise ensuite des méthodes avancées, notamment OpenProcessToken
et GetTokenInformation
, pour analyser le niveau d'élévation du processus actuel.
Analyse détaillée de l'élévation
La propriété IsProcessElevated
au sein de la classe UacHelper effectue ces étapes clés :
OpenProcessToken
récupère le jeton de sécurité du processus.GetTokenInformation
extrait le type d'élévation (complet/élevé, limité ou par défaut).Interprétation des résultats d'élévation
La propriété IsProcessElevated
renvoie :
True
: Le type d'élévation est « complet », ce qui signifie des privilèges élevés.False
: L'UAC est désactivé ou le type d'élévation est "limité" ou "par défaut".Cette méthode améliorée fournit un moyen fiable de confirmer si votre application s'exécute avec des privilèges véritablement élevés, quel que soit le contexte de l'administrateur.
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!