Como usar o WordPress Nonce
O que é WordPress Nonce?
Conforme mencionado no WordPress Codex, um nonce do WordPress é um "número usado uma vez" para ajudar a proteger URLs e formulários de certos tipos de uso indevido, malicioso ou outro.
Um nonce nada mais é do que um token de segurança que deve ser usado durante o desenvolvimento para evitar ataques CSRF (falsificação de solicitação entre sites).
Durante o desenvolvimento de um tema ou plugin, o nonce deve ser usado em um formulário ou URL. Como um desenvolvedor WordPress, usar o nonce é uma boa prática.
Como usar o Nonce em um formulário
Conforme mencionado, o nonce é um token para evitar ataques CSRF. Ao lidar com formulários, devemos adicionar este nonce em nossos formulários. Para adicionar um nonce em um formulário, usamos o campo oculto.
<input type="hidden" name="FIELD_NAME" value="<?php echo wp_create_nonce('NONCE_NAME'); ?>"
No código acima, substitua FIELD_NAME & NONCE_NAME pelo que você quiser.
Verifique se o Nonce é válido?
Depois de adicionar o nonce em um formulário, você precisa verificar se passar o nonce é válido ou não após o envio do formulário. O WordPress fornece uma função wp_verify_nonce para verificar a validade do nonce.
if (wp_verify_nonce( $_REQUEST['FIELD_NAME'], 'NONCE_NAME')) {
//safe to proceed
} else {
die('Security Check!');
}
Como usar o Nonce em URL
Os ataques CSRF também podem ocorrer no site por meio de URLs. Além disso, para páginas sensíveis, o nonce desempenha um papel importante. Digamos que temos uma página de configurações no site que contém alguns dados confidenciais que devem ser protegidos. Queremos impedi-lo de ataques CSRF também. Então eu crio um URL nonce para a página de configuração da seguinte maneira.
<a href="<?php echo wp_nonce_url(get_bloginfo('url').'/settings', 'page-settings', 'setting-nonce'); ?>"></a>
Verifique se o Nonce é válido?
Agora, precisamos verificar se passar o nonce é válido ou não. Podemos fazer isso da seguinte maneira. Aqui também estamos usando a função wp_verify_nonce() para verificar a validade do nonce. Vou adicionar o código abaixo no topo da página de configurações.
if (isset($_GET['setting-nonce']) && wp_verify_nonce($_GET['setting-nonce'], 'page-settings')) {
//safe tp proceed
}
Espero que você entenda como usar o WordPress Nonce. Se você tiver alguma dúvida ou sugestão, deixe um comentário abaixo.