O que é ‘defined(‘ABSPATH’) || exit;’?
Se você já abriu o código de um plugin ou tema WordPress, provavelmente viu isso logo no topo:
<?php
defined('ABSPATH') || exit;
// OU
if (!defined('ABSPATH')) {
exit;
}
Ela funciona como uma proteção básica contra acesso direto ao arquivo.
Arquivos PHP podem ser acessados diretamente pelo navegador.
Exemplo:
https://seusite.com/wp-content/plugins/meu-plugin/arquivo.php
Se alguém acessar esse arquivo diretamente, será executado sem carregar o WordPress inteiro.
Isso pode causar problemas como:
- execução de código sem validação
- exposição de dados
- comportamentos inesperados
- brechas de segurança
O que é ABSPATH?
ABSPATH é uma constante definida pelo WordPress, que representa o caminho absoluto da instalação. Algo como: /home/u280619465/domains/nousk.com.br/public_html/
Ou seja: se ABSPATH existe, significa que o WordPress já foi carregado.
Verifica se a constante ABSPATH existe:
- se existe: estamos dentro do WordPress
- se não existe: acesso direto ao arquivo
se ‘defined(‘ABSPATH’)’ for false executa ‘exit’, ou seja, o script para imediatamente
- impede execução direta do arquivo
- garante que o código rode apenas dentro do WordPress
- evita comportamento inesperado
- adiciona uma camada básica de segurança
Isso resolve todos os problemas de segurança?
Não, só garante o contexto de execução
Ela não substitui:
- validação de dados (sanitize_*)
- escape (esc_*)
- verificação de permissões (current_user_can)
- nonces (wp_verify_nonce)
É tipo assim: ela não fecha a porta da casa, só garante que você tá dentro dela antes de fazer qualquer coisa
Quando usar?
Sempre que você tiver um arquivo PHP que:
- pertence a um plugin
- pertence a um tema
- pode ser acessado diretamente pela URL
Ou seja, praticamente todos os arquivos PHP do seu projeto WordPress
Conclusão:
Essa verificação depende do fluxo padrão de carregamento do WordPress. Ou seja, não é uma proteção contra tudo, mas contra acessos diretos fora do contexto da aplicação.