Recentemente recebemos uma pergunta de um leitor que ouvimos com bastante frequência por aqui: “Como desativo a API REST no meu site WordPress?” E, honestamente, é uma preocupação válida.
Quando a versão 4.4 do WordPress foi lançada com a API REST JSON, ela abriu um mundo de possibilidades para os desenvolvedores.
No entanto, para muitos proprietários de sites que não precisam desses recursos avançados, a API pode parecer uma adição desnecessária que potencialmente expõe o site a riscos de segurança.
Neste artigo, mostraremos como desativar facilmente a API REST JSON no WordPress.

Por que Desativar a API REST JSON no WordPress?
Não há como negar que a API tem muitos benefícios para os desenvolvedores do WordPress. A API torna super fácil recuperar dados usando requisições GET, o que é útil para quem está construindo aplicativos com WordPress.
Dito isso, isso pode potencialmente abrir seu site para uma nova frente de ataques DDoS. Também pode consumir muitos recursos e deixar seu site WordPress lento.
Desativar a API REST JSON é semelhante a desativar o XML-RPC, que muitos administradores de sites desativam em seus sites WordPress apenas para garantir.
Dito isso, mostraremos dois métodos para desativar facilmente a API REST JSON no WordPress. Simplesmente use os links rápidos abaixo para pular para o método que você deseja usar:
Método 1. Desativando a API REST JSON no WordPress com Código (Recomendado)
Quando se trata de alterar a funcionalidade do WordPress, usar trechos de código é frequentemente a melhor abordagem. No entanto, editar diretamente o arquivo functions.php do seu tema pode ser arriscado e quebrar seu site se não for feito corretamente.
É por isso que recomendamos o uso do plugin WPCode para desativar a API REST JSON no WordPress.
É o mesmo plugin que usamos em nossos próprios sites para adicionar código personalizado no WordPress com segurança, sem editar os arquivos do tema.
Para saber mais sobre como usamos o plugin, veja nossa análise completa do WPCode.

Além disso, o WPCode vem com uma biblioteca de código integrada que inclui trechos de código verificados para solicitações de recursos populares como desativar a API REST, desativar XML-RPC e muito mais.
Isso evita que você instale vários plugins de uso único para tarefas diferentes.
Para começar, você precisa instalar e ativar o plugin gratuito WPCode. Para instruções passo a passo, leia nosso guia sobre como instalar um plugin do WordPress.
Observação: A versão gratuita do WPCode tem tudo o que você precisa para adicionar facilmente código personalizado no WordPress. Mas, se você quiser recursos avançados como uma biblioteca de snippets em nuvem privada, snippets específicos de página e dispositivo, revisões de código e mais, você pode fazer o upgrade para o WPCode Pro.
Assim que o plugin for ativado, vá para Snippets de Código » Biblioteca no seu painel do WordPress.
Em seguida, procure pelo snippet ‘Desativar REST API do WordPress’ e clique no botão ‘Usar snippet’.

O plugin adicionará automaticamente o código para você e selecionará o método de inserção apropriado também.

Tudo o que você precisa fazer é alternar o interruptor de ‘Inativo’ para ‘Ativo’.
Em seguida, clique no botão ‘Atualizar’.

É isso. Agora a JSON REST API está desativada no seu site WordPress.
Método 2. Desativando a API REST JSON no WordPress com um Plugin
Você também pode desativar facilmente a JSON REST API com a ajuda de um plugin dedicado.
A primeira coisa que você precisa fazer é instalar e ativar o plugin Disable REST API. Para mais detalhes, veja nosso guia passo a passo sobre como instalar um plugin do WordPress.
O plugin funciona imediatamente e não há configurações para você configurar.
Após a ativação, o plugin retornará forçadamente um erro de autenticação para quaisquer requisições de API de fontes que não estejam logadas no seu site.
Isso impedirá efetivamente que requisições não autorizadas usem a REST API para obter informações do seu site.
Você pode testar isso visitando a página http://example.com/wp-json. Certifique-se de sair da área administrativa do WordPress primeiro, ou mude seu navegador para o modo anônimo.
Não se esqueça de substituir example.com por seu próprio nome de domínio. Você verá esta mensagem, indicando que as requisições da REST API estão bloqueadas.

Isso é tudo, você desativou com sucesso as requisições não autorizadas da REST API no seu site WordPress.
Método Alternativo: Desativando Links da API REST no WordPress com Código
Em vez de desativar a WordPress REST API, você pode optar por desativar apenas os links da REST API. Isso oculta os endpoints da API do código-fonte do seu site WordPress sem desativar completamente a REST API.
Com este método, você pode melhorar a segurança tornando os endpoints mais difíceis de encontrar, enquanto mantém todas as funcionalidades do WordPress funcionando normalmente. É uma escolha popular entre desenvolvedores, pois adiciona segurança sem quebrar temas ou plugins que precisam da REST API para funcionar.
Para fazer isso, você precisa instalar e ativar o plugin WPCode. Se precisar de ajuda, veja nosso tutorial sobre como instalar um plugin do WordPress.
Após a ativação, vá para Snippets de Código » Biblioteca no seu painel do WordPress.
A partir daí, procure pelo snippet 'Desativar Links da REST API'. Quando encontrá-lo, passe o mouse sobre ele e clique no botão 'Usar snippet'.

Depois disso, o WPCode adicionará automaticamente o snippet de código e selecionará o método de inserção correto.

Agora, tudo o que você precisa fazer é mudar o seletor de 'Inativo' para 'Ativo'.
Por último, clique no botão 'Atualizar'.

É simples assim. Agora, os links da REST API serão desativados no seu site WordPress.
Esperamos que este artigo tenha ajudado você a aprender como desativar a API REST JSON no WordPress. Usuários preocupados com a segurança também podem querer conferir estas dicas sobre como proteger a área de administração do WordPress, ou ver nossas melhores escolhas dos melhores plugins de backup do WordPress.
Se você gostou deste artigo, por favor, inscreva-se em nosso Canal do YouTube para tutoriais em vídeo do WordPress. Você também pode nos encontrar no Twitter e no Facebook.


Dennis Muthomi
Eu aprecio particularmente os dois métodos que você descreveu, especialmente a abordagem baseada em código usando WPCode. Como proprietário de um site, hesitei em desativar a API devido aos seus benefícios, mas sua explicação sobre os riscos potenciais de segurança me fez reconsiderar.
Estou interessado no plugin WPCode e em sua capacidade de gerenciar trechos de código personalizados com segurança. Definitivamente explorarei essa ferramenta mais a fundo para implementar outras personalizações do WordPress sem sobrecarregar meu site com plugins de propósito único.
Obrigado por isso. WPBeginner é O MELHOR!
Dayo Olobayo
Agradeço a clareza deste tutorial sobre como desativar a API REST JSON no WordPress. No entanto, me pergunto se desativar completamente a API é a melhor abordagem, considerando seus potenciais benefícios para a funcionalidade do site e a integração com outros serviços.
WPBeginner Support
Dependeria do proprietário do site para saber se seria o melhor para as necessidades dele ou não, ou se ele encontrou algum problema ao usá-la.
Admin
Dayo Olobayo
Obrigado. Acho que é essencial ponderar os riscos de segurança potenciais contra os benefícios da API REST JSON, considerando as necessidades e circunstâncias únicas do proprietário.
Jiří Vaněk
Olá Dayo Olobayo,
A questão é mais sobre se você usa esta API ou não. É o mesmo que com XML-RPC. Eu não a uso no meu site, então a desativei. Claro, isso significa que não consigo me conectar ao site usando, por exemplo, o aplicativo móvel do WordPress, que usa XML-RPC para se conectar. É sempre um compromisso entre o que você quer desativar e o que você quer permitir. Qualquer API que aceita requisições externas pode ser um risco potencial, e é simplesmente uma questão de se você quer usá-la ou não.
RJW
Eu tentaria o plugin de desativação em um ambiente de desenvolvimento antes da produção, descobri que instalá-lo quebrou alguns recursos
WPBeginner Support
Se você tem muitos plugins e ferramentas diferentes e um ambiente de teste, então seria definitivamente bom testar novos plugins e como eles interagem com seu site.
Admin
Ricky
Semelhante a um comentarista acima, notei a requisição “wp-json” ao usar o Pingdom e outros sites de teste. Infelizmente, a minha leva mais de 10 segundos (sim, realmente!!) para carregar. Isso aumenta o tempo total de carregamento do meu site e não consigo descobrir como consertar isso. O plugin não muda nada. Alguma sugestão?
Janice
Como sei se realmente tenho a API JSON no meu site?
Este artigo sobre como removê-la é bom – se eu precisar –, mas muitas vezes fui alarmado por certos avisos apenas para descobrir que eles nem eram aplicáveis a mim.
WPBeginner Support
Olá Janice,
Se você está usando um site WordPress.org auto-hospedado, então você tem a API REST JSON disponível em seu site.
Admin
Logan Cale
Eu odeio adicionar mais um plugin para fazer uma tarefa simples, e descobri que podemos desativar essa funcionalidade adicionando o seguinte trecho de código ao arquivo functions.php.
add_filter(‘rest_enabled’, ‘_return_false’);
add_filter(‘rest_jsonp_enabled’, ‘_return_false’);
Margarit Koka
Obrigado, mano, sua resposta é o que eu estava procurando ao visitar esta página.
Bobby C.
Obrigado! Direto ao ponto.
Hari
Eu estava procurando por este código, funcionou, obrigado, eu não prefiro adicionar plugins.
Michael
Obrigado pela sua ajuda. Não há opção de 'adicionar novo' nos meus plugins.
WPBeginner Support
Você provavelmente está usando WordPress.com. Por favor, veja nosso guia sobre a diferença entre WordPress.org auto-hospedado vs blog gratuito WordPress.com.
Admin
Lynne
Thank you! Spot on
worked for me
J.L.
Isso é apenas para blogs auto-hospedados ou inclui sites de blog gratuitos? Porque a maioria dos plugins... etc. são feitos para você quando você não é auto-hospedado
PS Não vou me inscrever... só quero uma resposta
WPBeginner Support
Isso é apenas para sites WordPress.org auto-hospedados.
Admin
Elaine
Como posso verificar se meu site tem Rest API. Desativei muitos extras quando o configurei pela primeira vez, mas agora não sei onde procurar para ver se está lá. Não estou disposto a baixar um plugin desnecessariamente.
WPBeginner Support
Oi Elaine,
Você pode verificar se a API REST está habilitada em seu site visitando o URL como este exemplo.com/wp-json. Certifique-se de que você está desconectado do WordPress antes de fazer isso. Se você vir muitas informações em texto simples, isso significa que a API REST está habilitada em seu site. Siga as instruções acima para desativá-la.
Admin
Saransh Jain
E quanto à opção de desativar a API JSON REST no plugin Jetpack?
Ken Dowling
Desativar a API REST é adequado para sites de e-commerce como o WooCommerce? Pelo que entendi, o WooCommerce usa bastante a API REST.
Além disso, meus compradores não precisam fazer login para comprar, então o que acontece com a transação quando uma chamada da API REST é rejeitada?
Atenciosamente, Ken
D. Joe Chaffin
O plugin não faz diferença para mim no WP 4.7.2. Com o plugin ativado ou desativado, as páginas exemplo.com/wp-json (com meu domínio substituindo "exemplo") exibem uma lista enorme de configurações para o meu site.
D. Joe Chaffin
Hmmm. Agora que olho, só vejo a lista no Safari, enquanto Chrome e Firefox para Mac mostram a mensagem esperada especificada neste post.
WPBeginner Support
Olá,
Certifique-se de que você está desconectado da área administrativa do WordPress ou use o modo anônimo antes de testar a página exemplo.com/wp-json. O plugin desativa o acesso à página apenas para usuários não autorizados. Como administrador, você ainda poderá vê-la.
Admin
D. Joe Chaffin
Envergonhado... Você está certo, é claro.
Audra Carpenter
Olá pessoal,
Primeiro, muito obrigado pelo que vocês fazem! Aprendi muito sobre o WordPress com vocês e indiquei muitas pessoas para vocês!!
Ok, instalei o plugin, mas não estou vendo o que vocês sugerem acima? Tenho uma tela cheia de informações…?
Opiniões?
Obrigado!
WPBeginner Support
Oi Audra,
Por favor, saia ou use uma janela anônima para testar. O plugin apenas desabilita o acesso para usuários não logados.
Admin
Treasure
Segui estes passos, mas quando fui verificar com o exemplo etc., recebi 2 páginas de código, não a resposta mostrada acima. Hmmm, não sei o que fazer.
Treasure
Certo, fiz de novo e recebi a mensagem correta. Obrigado!
Doug Nix
Quando executei o teste, acho que falhou, pois recebi um monte de dados na tela. Alguma ideia do que pode ter dado errado? Instalei o plugin como descrito…
Doug Nix
Funciona perfeitamente quando verifico usando uma janela anônima. Obrigado pela explicação sobre usuários autorizados vs. não autorizados ou anônimos.
Laura Zielke
Funcionou perfeitamente. Obrigado!
Karl
Obrigado pela dica, assim como pelo hook para desabilitar o XMLRPC.
Há alguma chance de um hook de filtro para a API REST também?
Andrew
Quando verifico a velocidade do meu site usando pingdom.com, a primeira entrada HTML que tentou carregar mostra o link como meudominio.com/wp-json e tem mais de 2 segundos de tempo de “espera”. É o mesmo do que este artigo está falando? Hesito em simplesmente desabilitá-lo, pois assumiria que ele será usado no futuro. Alguma ideia de por que ele adicionaria um atraso de mais de 2 segundos ao carregar qualquer coisa na página?
Stephen Cronin
Hmm, a REST API se tornará a maneira padrão para plugins e temas fazerem chamadas Ajax de volta ao servidor a partir do front-end, substituindo o admin-ajax, então eu não a desabilitaria… Espero que falhem graciosamente, mas você acabará perdendo alguma funcionalidade.
Also, if you really want to protect against DDoS attacks, you better disable html as well!
reza
ver 50.000 sites WordPress foram hackeados devido a uma grande vulnerabilidade de segurança descoberta na API REST do WordPress.
Jim S Smith
OUCH!
É perturbador saber disso. Notei MUITAS tentativas de acesso nos logs do meu site.
Além disso,
Acho que o pessoal do WordPress poderia ter feito um pouco melhor em deixar os usuários decidirem o quanto, se é que querem, a REST API exposta.
Novamente,
Mais disso, “Os desenvolvedores sabem MAIS sobre as necessidades do usuário do que o próprio usuário!” – Eu também não fiquei muito feliz em ser forçado a suportar EMOJI e fontes carregadas remotamente de fonts.google.com, mesmo que meus sites não as usem!
A REST API pode ser uma bênção para (alguns) desenvolvedores de aplicações web reais, mas e quanto ao resto de nós que provavelmente não a usaremos? ? ?
Kasey
Quão provável é que um plugin esteja usando essa funcionalidade. Apenas para dar um exemplo, formulários de contato estariam utilizando isso? Não estou a fim de desativar caso quebre alguma coisa.
WPBeginner Support
Os plugins muito provavelmente notificarão você se estiverem usando e você a desativou.
Admin