📌  相关文章
📜  Désactiver l'exposition des utilisateurs admins aux niveaux de l'API wp-json. - PHP (1)

📅  最后修改于: 2023-12-03 14:40:42.982000             🧑  作者: Mango

Désactiver l'exposition des utilisateurs admins aux niveaux de l'API wp-json - PHP

Lors du développement d'un thème WordPress, il peut être nécessaire de désactiver l'exposition des utilisateurs admins aux niveaux de l'API wp-json afin de renforcer la sécurité. Voici comment accomplir cela en utilisant du code PHP :

// Désactiver l'exposition des utilisateurs admins aux niveaux de l'API wp-json
function disable_admin_user_api_endpoint( $response, $endpoint ) {
    // Vérifier si l'endpoint est celui des utilisateurs
    if ( strpos( $endpoint, '/wp/v2/users' ) !== false ) {
        // Récupérer le rôle de l'utilisateur connecté
        $user = wp_get_current_user();
        $roles = (array) $user->roles;
        
        // Vérifier si l'utilisateur a le rôle d'administrateur
        if ( in_array( 'administrator', $roles ) ) {
            // Retourner une réponse vide
            $response = new WP_REST_Response();
            $response->set_status( 403 );
        }
    }
    
    return $response;
}
add_filter( 'rest_request_after_callbacks', 'disable_admin_user_api_endpoint', 10, 2 );

Ce code utilise le hook rest_request_after_callbacks pour intercepter les requêtes vers l'API wp-json qui sont en rapport avec les utilisateurs. Il vérifie si l'utilisateur connecté a le rôle d'administrateur grâce à la fonction wp_get_current_user() et wp_rest_validate_request_arg(). Si c'est le cas, il retourne une réponse vide avec un statut 403 (interdit).

Pour utiliser ce code, vous pouvez l'ajouter dans le fichier functions.php de votre thème WordPress ou dans un plugin personnalisé.

Assurez-vous de bien tester cette fonctionnalité après l'avoir implémentée afin de vous assurer qu'elle répond à vos besoins en termes de sécurité.