Désactivation de l’API REST (Créer un compte)

  • WordPress :5.8
  • Statut : non résolu
5 sujets de 1 à 5 (sur un total de 5)
  • Auteur
    Messages
  • #2414689
    Olivier C
    Participant
    Chevalier WordPress
    429 contributions

    Bonjour,

    J’essai de désactiver l’API REST de WordPress (activée par défaut !!!) mais rien à faire : lorsque je vais voir sur mon-domaine.truc/wp-json/wp/v2j’ai droit à mes données bien exposées à mon insu dans un format JSONP. J’avais trouvé ceci à plusieurs endroits :

    // Disable REST API
    // @link https://wpadminify.com/kb/how-to-disable-the-rest-api-in-wordpress/
    // Filters for WP-API version 1.x
    add_filter('json_enabled', '__return_false');
    add_filter('json_jsonp_enabled', '__return_false');
    // Filters for WP-API version 2.x
    add_filter('rest_enabled', '__return_false'); // deprecated
    add_filter('rest_jsonp_enabled', '__return_false');

    J’ai essayé de le placer dans functions.php avec ou sans c’est ‘add_action’ mais rien n’y fait… une idée ?

    • Ce sujet a été modifié le il y a 2 années et 10 mois par Olivier C.
    #2414732
    Olivier C
    Participant
    Chevalier WordPress
    429 contributions

    A mince, ce que j’ai publié plus haut est la version legacy du code pour WordPress < 4.7, maintenant c’est bien plus compliqué

    N’y a t’il pas plus simple ? Même si plus radical (comme par exemple supprimer toutes les fonctionnalités JSON sous WP) ?

    #2414757
    Olivier C
    Participant
    Chevalier WordPress
    429 contributions

    C’est bon, j’ai trouvé : Safely disable WP REST API. Mais qu’est-ce que l’on ne ferait pas sans Stackoverflow…

    Du coup c’est trop cool l’activation de ces fonctionnalités par défaut (rire) : grâce à ça vos données sont exposées suite à une mise à jour sans que vous n’ayez rien demandé. Si vous êtes encore en versions 4.7.0 ou 4.7.1 n’importe qui peut modifier vos données sans avoir à s’authentifier (il y a eu un path à partir de 4.7.2).

    Bravo WordPress.

    • Cette réponse a été modifiée le il y a 2 années et 10 mois par Olivier C.
    #2414764
    Rock4Temps
    Participant
    Maître WordPress
    1228 contributions

    Bonjour,

    Attention cette extension n’a plus été mises a jour depuis 1 an!

    Si vous utilisez une extension de sécurité comme Itheme Security
    vous pouvez spécifier un accés restreint a l’API REST et vous n’avez pas accés aux points
    de terminaisons comme posts,users etc.. quelque soit votre statut de connexion.

    En complémént avec le hook:  rest_url_prefix  donné sur Stackoverflow alors
    cela devient pas mal!

    // Personnaliser le préfixe wp-json 
    // Assurez-vous d'aller dans Tableau de bord> Paramètres> Permaliens
    // et appuyez sur le bouton Enregistrer pour vider/réécrire le cache d'url
    add_filter( 'rest_url_prefix', 'rest_api_url_prefix' );
    function rest_api_url_prefix() {
    return 'eccp-api';
    }

    Une autre extension qui fait un peu la même chose que  Itheme Security
    https://wordpress.org/plugins/disable-wp-rest-api/

     

    Un code qui désactive l’API REST, mais votre site risque de ne plus fonctionner
    car certaines extensions utilisent l’API REST

    // Désactiver l'API REST
    function disable_rest_api( $access ) {
    return new WP_Error( 'rest_disabled', __( 'The WordPress REST API has been disabled.' ), array( 'status' => rest_authorization_required_code() ) );
    }
    add_filter( 'rest_authentication_errors', 'disable_rest_api' );

     

     

     

     

    #2414765
    Olivier C
    Participant
    Chevalier WordPress
    429 contributions

    Merci. Oui j’avais vu passer le code sur Stack pour la personnalisation du slug. Mais au final je pense que je vais adopter une solution apache, je traiterais ainsi les pages d’images attachées de la même manière (car pour l’instant j’utilise le fichier image.php avec une redirection, c’est pas glop). Je ne suis pas chez moi pour tester mais je pense que je vais adopter un truc comme ça :

    # .htaccess

    RewriteRule ^wp-json.*$ 404.php

    Vu que je n’utilise pas de plugins…

5 sujets de 1 à 5 (sur un total de 5)
  • Vous devez être connecté pour répondre à ce sujet.