Facebook Linkedin Instagram Twitter Youtube Github Rss
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
Menu
  • Web Stories
  • Desenvolvimento
  • Infra
  • Mobile
  • Performance
  • Segurança
  • SEO
  • E-commerce
Cadastrar E-mail

Início » Segurança para WordPress » O que você precisa saber sobre WordPress Nonces

O que você precisa saber sobre WordPress Nonces

Conheça e faça uso do WordPress Nonces para garantir segurança para WordPress, evitando ataques do tipo CSRF e protegendo suas informações.

Leandro Vieira by Leandro Vieira
3 anos ago
Reading Time: 5 min
8
O que você precisa saber sobre WordPress Nonces
Compartilhe no FacebookCompartilhe no LinkedIn
Audio

Conhecer e fazer uso do recurso de WordPress Nonces é garantir mais segurança para WordPress, evitar ataques do tipo CSRF e proteger suas informações. Muitos desenvolvedores não conhecem essa funcionalidade e através deste artigo tenho a intenção de explicar o que você precisar saber sobre o assunto.

Conteúdo relacionado

Segurança e LGPD: comece a implementação pelo básico

ModSecurity como Web Application Firewall no WordPress

O plugin para implementar 2FA – autenticação de dois fatores

O que você precisa saber sobre Nonces e garantir mais segurança para WordPress

Click To Tweet

A definição de Nonce

Literalmente falando, Nonce quer dizer um número utilizado uma única vez. Em inglês teríamos algo como number used once ou number once. É um tipo de criptografia onde um determinado número, ou hash, é utilizado apenas uma única vez e muito adotado em sistemas de autenticação e na prevenção dos ataques do tipo CSRF.

In cryptography, a nonce is an arbitrary number that may only be used once. It is similar in spirit to a nonce word, hence the name. It is often a random or pseudo-random number issued in an authentication protocol to ensure that old communications cannot be reused in replay attacks…

https://en.wikipedia.org/wiki/Cryptographic_nonce

A definição de Nonces no contexto do WordPress

O token de segurança do WordPress é chamado Nonces. Por isso há particularidades e especificidades nesse mecanismo na plataforma. Sua principal utilidade é proteger URLs e formulários contra usos maliciosos ou suspeitos.

Embora a letra “N” venha de Number, o WordPress faz uso de números e letras para a composição de valor dos Nonces gerados. Além disso ele tem um tempo de vida específico ao contrário de ser utilizado uma única vez e também é único para cada usuário de acordo com o seu contexto.

Em resumo, é preciso que fique bem claro a tratativa de Nonces no WordPress:

  • É o mecanismo de token da plataforma que se chama Nonces;
  • Não é somente número, e sim letras e números;
  • Ele não é utilizado uma única vez;
  • O token é específico para cada usuário por um período de tempo e contexto;
  • Ele protege contra vários tipos de ataques e o principal deles é o CSRF;
  • Não protege contra ataque repetitivo, uma vez que não há uma checkagem de utilização única.

Uma abordagem super breve sobre o ataque do tipo CSRF

Cross-Site Request Forgery (CSRF) ou Falsificação de Solicitação entre Sites, em linhas gerais, é um tipo de ataque em que uma interface maliciosa (site, e-mail, mensagem instantânea e etc) executa uma ação insperada para um site confiável para executar ações como troca de senha, transferência de valores monetários ou a submissão de um formulário qualquer.

Para se aprofundar mais sobre o assunto considere a leitura dos links abaixo:

  • https://pt.wikipedia.org/wiki/Cross-site_request_forgery
  • https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) (inglês);

Como funciona o WordPress Nonces

O WordPress Nonces é implementado em todo o core da plataforma, mas os plugins e temas ativados também precisam fazer uso do recurso, caso contrário algumas partes e funcionalidades adicionadas por eles ficarão descobertas.

O valor dos tokens, ou melhor dos Nonces, são alterados a cada 12 horas e são válidos por 24. Logo, a chave atual e a penúltima são consideradas válidas. Isso evita que alguém possa copiar o valor de um Nonce antigo e reutilizá-lo na URL de uma operação de requisição HTTP.

Observe a URL abaixo utilizada para mover um Post para a lixeira, por exemplo.

/wp-admin/post.php?post=99&action=trash&_wpnonce=d4e7c84572

d4e7c84572 é o valor do Nonce informado no parâmetro de URL padrão do WordPress chamado _wpnonce. Agora observe uma outra para limpar o post do cache através do plugin W3 Total Cache.

/wp-admin/admin.php?page=w3tc_dashboard&w3tc_flush_pgcache_purge_page&post_id=99&_wpnonce=85c93a8183

O parâmetro de URL é o mesmo, _wpnonce. Mas o valor do Nonce é diferente. E como falamos no início deste artigo, os Nonces são únicos por usuário e contexto. Em ambos exemplos de URL temos o mesmo usuário, mas contextos diferentes. Um contexto de mover o Post para a lixeira e outro para limpá-lo do cache.

Caso o Nonce tenha expirado ou seja inválido, o WordPress exibirá uma mensagem de erro como demonstrado na imagem abaixo.

Exemplo de mensagem de erro do WordPress Nonces

A aplicação do WordPress Nonces é realizada em todas as URLs que executam uma ação, nas requisições AJAX e formulários. Volto a repetir, os plugins e temas que adicionam funcionalidades extras na administração devem implementar os Nonces para maior segurança, mas infelizmente nem todos o fazem. Conhecendo o funcionamento você conseguirá validar se o recurso está sendo aplicado ou não.

Como alterar o mecanismo de Nonces do WordPress

Se você não gosta da implementação de Nonce do WordPress, é possível substituí-lo por completo ou alterar funcionalidades específicas. A API do WordPress te permite essas personalizações e sua extensibilidade é incrível, e todas as funções do core para implementar os Nonces são pluggable.

Basicamente você precisará substituir cinco funções. Duas específicas para as requisições em AJAX e outras três para o mecanismo como um tudo. São elas:

  • check_admin_referrer();
  • check_ajax_referrer();
  • wp_create_nonce();
  • wp_verify_nonce();
  • wp_nonce_tick();

O arquivo wp-config.php e os Nonces do WordPress

O WordPress através do arquivo wp-config.php armazena constantes PHP com hashes que são utilizados em todas as tratativas de senha e criptografia, e claro para os Nonces através das contantes NONCE_KEY e NONCE_SALT.

A imagem abaixo ilustra esse exemplo.

Exemplo de retorno do serviço secret-key do WordPress.org
Exemplo de retorno do serviço secret-key do WordPress.org

O WordPress.org disponibiliza uma API que gera esses códigos através do serviço secret-key.

Agora que você conhece o WordPress Nonces exija que os temas e plugins em uso no seu site façam uso do recurso, caso contrário delete e se recuse a utilizá-lo. Fazer uso do mecanismo de Nonce é garantir mais segurança e evitar ataques do tipo CSRF como mencionado. E considere proteger o arquivo wp-config.php.

Tags: csrfnonceswp-config.php
Share13Share1SendShare
Previous Post

SQL Injection no WordPress e plugins | Aprenda urgente como se proteger dessas ameaças

Next Post

Use o WPScan para análise de segurança do WordPress e plugins

Leandro Vieira

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.

Related Posts

Rate Limiting
Segurança para WordPress

Como ferramentas de Rate Limiting ajudam em segurança e performance

4 de agosto de 2020
Usuários e senhas fortes para melhorar a segurança no WordPress
Segurança para WordPress

Usuários e senhas fortes para melhorar a segurança no WordPress

28 de julho de 2020
Tipos e benefícios dos certificados de segurança TLS/SSL.
Segurança para WordPress

Tipos e benefícios dos certificados de segurança TLS/SSL.

19 de agosto de 2020
Como remover o nome de usuário “admin” do WordPress
Segurança para WordPress

Como remover o nome de usuário “admin” do WordPress

19 de agosto de 2020
Next Post
Use o WPScan para análise de segurança do WordPress e plugins

Use o WPScan para análise de segurança do WordPress e plugins

Implemente certificados de segurança no painel do WordPress

Implemente certificados de segurança no painel do WordPress

Comments 8

  1. Rodrigo Vieira Eufrasio da Silva says:
    8 anos ago

    Leandro Parabéns, cada vez mais escrevendo artigos de qualidade, para uma solução open source que é nosso WordPress.

    Responder
  2. Leandro Vieira says:
    8 anos ago

    Obrigado Rodrigo,

    Toda segunda-feira tenha postado um conteúdo sobre segurança e WordPress. Fique ligado 😀

    Responder
  3. Matheus Gomide says:
    7 anos ago

    Ótimo artigo Leandro, muito obrigado, me ajudou muito!

    Leandro gostaria de tirar algumas dúvidas você parece entender bem de WordPress. Uso o WordPress a 1 ano ( sou desenvolvedor a 4 ) e desde então utilizo WordPress em quase todos meus projetos… Mas ouço muitas críticas de outros desenvolvedor em relação a segurança do WordPress, que não adianta utilizar o framework e não conseguir fazer tudo que ele oferece na ‘ raça ‘ sem a ferramenta, e coisas do tipo…

    Tem alguma área a qual posso te fazer esse tipo de pergunta, ou algum e-mail, gostaria de tirar algumas duvidas não de código, mas da ferramenta WordPress em si.

    Obrigado.

    Responder
    • apiki says:
      7 anos ago

      Fala Matheus,

      Essa impressão é recorrente. Em função disso criamos uma iniciativa chamada “O WordPress é seguro. Inseguro é você” além de conteúdos para melhorar a segurança. Abaixo envio os links para você analisar.

      https://apiki.com/wordpress-seguro/ https://apiki.com/oferta/dicas-de-seguranca-para-wordpress/ https://apiki.com/oferta/guia-seguranca-wordpress/

      😀

      2016-11-07 10:24 GMT-02:00 Disqus :

      Responder
      • Matheus Gomide says:
        7 anos ago

        ooopa, valeu parceeiro! Vou dar uma boa olhada.

        Só mais uma perguntinha (desculpa encher o saco), você acha válido utilizar e-commerce (woocommerce) no WordPress? ou depende de algumas coisas como tamanho do projeto, tamanho do bd, mas em geral da pra usar…? Ou não recomenda muito.

        Obrigado!!

        Responder
        • apiki says:
          7 anos ago

          O woocommerce é a melhor solução para E-Commerce no WordPress. Siga em frent
          2016-11-07 11:19 GMT-02:00 Disqus :

          Responder
  4. Pingback: Site seguro: confira 15 dicas em vídeo para ajudar na segurança do seu WordPress
  5. Pingback: Em desenvolvimento

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba no seu e-mail uma série de conteúdos sobre Infra para WordPress.

  • Este campo é para fins de validação e não deve ser alterado.

  • FACEBOOK
  • LINKEDIN
  • INSTAGRAM
  • TWITTER
  • YOUTUBE
  • GTIHUB
  • RSS
Sobre a Apiki

Empresa especializada em WordPress com três unidades de negócios.

  1. Design e Desenvolvimento;
  2. Infra e Hospedagem;
  3. Suporte e manutenção.

Em resumo, só fazemos uma coisa em WordPress: tudo.

Páginas do Apiki.com
  • Apiki.com
  • Sobre a Apiki
  • Hospedagem
  • Desenvolvimento
  • UX & UI para WordPress
  • Growth em WordPress
  • Suporte
  • Atendimento
Páginas do Blog
  • Sobre
  • Newsletter
  • Desenvolvimento WordPress
  • Segurança para WordPress
  • WordPress Mobile
  • Infra para WordPress
  • WordPress SEO
  • WordPress Performance
  • E-commerce
© 2023 Apiki – Empresa especializada em WordPress.