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.