Cara, a ideia é maravilhosa, mas esta com erros de segurança. Vi alguns trechos do código brevemente, e ja achei um problema no arquivo avelpress/src/Admin
/AdminManager.php, no trecho current_page = _GET[ page ]; esta passando parâmetros sem nenhuma sanitização, isso é bem grave (e infelizmente uma falha bem comum). Se vc estiver usando ia pra codar, pede pra sanitizar com funções do wp para sanitizacao.
Que bom que gostou, mas não, não há nenhuma brecha de segurança, você está errado e vou explicar o porque:
O sanitizer eu sempre uso em todos meu plugins, usando especificamente as funções disponibilizadas pelo próprio Wordpress para isso, inclusive o wordpress barra o seu plugin, se você tem dados não sanitizados corretamente.
O Sanitizer é usado para limpar dados que serão processados, exibidos ou persistidos, seja no banco de dados ou em outro local, ou mesmo sem persistir, exibindo ele para o usário seja em algum html, pdf, xml, json ou qualquer outro recurso. Ele remove ou transforma dados perigosos para torná-los seguros para uso, evita qualquer tipo de injection, seja SQL injection, Stored XSS etc... Mas veja que onde eu usei sem, Em nenhum momento processei o dado ou perssisti ele, ou mesmo repassei ele pra frente, só validei se ele é igual á algo, e então o descartei. Não há nenhuma brecha de segurança nisso, te dou um prêmio se conseguir aplicar alguma injection nesse dado, e usar um sanetizer nesse caso seria irrelevante. Eu poderia colocar apenas por hábito, mas em nenhum momento por segurança nesse caso, como você disse.
É bem comum que Programador sem muita experiência se confudam o que precisa e não precisa ser sanetizado, por esse motivo o wordpress recomenda sanetizar tudo por hábito, e isso evita que onde realmente precise o programador não esqueça.
Só pelo fato de você achar que existe uma brecha de segurança nesse trecho do código, diz muito sobre o seu conhecimento de programação ou segurança. Ou mesmo ter cogitado que eu uso IA para codar rs, se você usa, que bom!
Segue a baixo um trecho sobre isso:
Quando você NÃO precisa sanitizar
Se o valor vindo de $_GET
- Não é salvo no banco de dados
- Não é exibido (echo/HTML/output)
- Não é usado para executar lógica (como carregar arquivos, fazer queries, chamar funções dinâmicas, etc.)
- É apenas comparado com uma lista fixa de strings internas (in_array) ou comparado com uma condição
Então NÃO existe risco real de segurança, e sanitizar passa a ser apenas boa prática, não uma necessidade.
A função só compara:
if ( current_page === page ) {
return true;
}
Ela não imprime o valor, não salva, não usa para carregar nenhum recurso
Então usar ou não sanitização nesse caso não muda nada para segurança.
O motivo de muitos desenvolvedores sanitizarem nesse caso específico seria mais por hábito, e não por questões de segurança como você disse
E é muito curioso você falar isso, pois em um código seu onde você sim está usando o $_GET para exibir ou processar os dados:
https://github.com/gmasson/carne-de-pagamento/blob/master/capa.php
Você está usando addslashes achando que está sanetizando quando a própria deocumentação do PHP diz exatamente ao contrário, abaixo o trecho exato tirado da documentaçao do PHP:
"O método addslashes() às vezes é usado incorretamente para tentar impedir a injeção de SQL . Em vez disso, funções de escape específicas do banco de dados e/ou instruções preparadas devem ser usadas." (referencia: https://www.php.net/manual/en/function.addslashes.php)
Mas eu entendo, pois pelo modo que foi escrito o seu código, me parece que você é iniciante, de qualquer modo, se você quer fuçar mais no meu código, pode fuçar a vontade, e se encontrar algum bug ou problema pode fazer uma PR, provavelmente tenha, mas felizmente não era o que você disse que era.