J'ai mis à niveau mon WordPress vers 4.7.1
, et après cela, j'ai essayé d'énumérer les utilisateurs via l'API REST, qui devrait être corrigé, mais j'ai pu récupérer les utilisateurs.
https://mywebsite.com/wp-json/wp/v2/users
Sortie:
[{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ...
Journal des modifications de la dernière version:
L'API REST a exposé les données utilisateur de tous les utilisateurs qui avaient créé un message de type public. WordPress 4.7.1 limite cela aux seuls types de publication qui ont spécifié qu'ils doivent être affichés dans l'API REST. Rapporté par Krogsgard et Chris Jean.
Après avoir installé le plugin Disable REST API
, il semble que tout fonctionne bien, mais je n'aime pas l'utiliser pour chaque petit plugin.
La sortie après utilisation du plugin est:
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
Comment puis-je résoudre ce problème sans utiliser de plugin, ou pourquoi même après la mise à niveau, ce stil existe?
EDIT 30.9.2017
J'ai réalisé qu'il y a un conflit entre le contact 7
plugin et Disable REST API
et cela vous donnera une 401 unauthorized
erreur.
Lorsque vous essayez d'envoyer un message via le contact 7
formulaire, il fera une demande
wp-json/contact-form-7/v1/contact-forms/258/feedback
et désactiver ce n'est pas une bonne idée.
Réponses:
Utilisez cet extrait de code, il masquera la liste des utilisateurs et donnera le résultat 404, tandis que les autres appels api continueront de fonctionner tels qu'ils étaient.
Vous pouvez vous référer à ce lien sur le dépôt gitHub de WP_REST_API pour plus de détails à ce sujet.
::MISE À JOUR::
Pour supprimer tous les points de terminaison de l'API REST par défaut, vous devez ajouter le code suivant:
<?php remove_action('rest_api_init', 'create_initial_rest_routes', 99); ?>
la source
functions.php
votre thème.Supprimez le lien API de la tête HTML si vous le souhaitez.
Ensuite, exigez une authentification pour toutes les demandes.
Cela vous laissera le message souhaité.
Maintenant, pour arrêter l'énumération, vous pouvez utiliser quelque chose comme ça.
Consultez le post entier pour d'autres techniques.
la source
Vous pouvez le corriger via la configuration nginx / apache:
la source
Pour pouvoir résoudre ce problème, vous devez d'abord connaître la source du problème.
Veuillez me faire savoir si cela vous a orienté dans la bonne direction.
Une sale façon de résoudre ce problème est de simplement bloquer l'URL en dessous dans vos .htacces. https://mywebsite.com/wp-json/wp/v2/users
la source