Aqui está uma lista de verificação modificada, com base na minha lista de verificação de segurança de dados / configurações atual (em andamento) usada para revisar Temas (os princípios não devem ser diferentes para Plugins do que para Temas):
-
Os plug-ins devem prefixar todas as opções, funções personalizadas, variáveis personalizadas e constantes personalizadas com o plugin-slug.
-
Os plug-ins devem implementar deliberadamente as páginas Opções de plug-in e Configurações de plug-in, em vez de usar scripts de copiar e colar de tutoriais de sites, como os abaixo, que estão desatualizados e não incluem segurança de dados adequada:
-
Os plug-ins devem usar a função
add_options_page()
para adicionar a Página de configurações de plug-ins ao menuSettings
, em vez de usaradd_menu_page()
para adicionar um menu de nível superior. -
Os plug-ins devem usar um recurso apropriado (por exemplo,
manage_options
) para a capacidade de adicionar a página de configurações. -
Os plug-ins devem salvar opções em uma única matriz, em vez de criar várias opções para a página de configurações. O uso da API de configurações (veja abaixo) lidaria com isso.
-
Os plug-ins devem usar a API de configurações (veja abaixo) para obter e salvar dados de entrada do formulário, em vez de confiar nos dados
$_POST
e$_REQUEST
diretamente. -
Para caixas de seleção e opções de seleção, os plug-ins devem usar as funções
checked()
eselected()
para a saída dechecked="checked"
eselected="selected"
, respectivamente. -
Os plug-ins devem validar e limpar todos os dados não confiáveis antes de inserir dados no banco de dados e devem escapar de todos os dados não confiáveis antes de serem enviados nos campos de formulário Configurações e antes de serem enviados nos arquivos de modelo Tema:
-
Os plug-ins devem usar
esc_attr()
para entradas de texto eesc_html()
(ouesc_textarea()
no WP 3.1) para textareas. -
Os plug-ins devem fornecer explicitamente a verificação do nonce das configurações da página, se não usar a API de configurações:
-
Também é altamente recomendável que os plug-ins usem a API de configurações, que é mais fácil de usar, mais segura e cuida do trabalho pesado das páginas de configurações:
Para um bom tutorial sobre o uso da API de configurações, consulte:
Se você quiser conferir um tema com uma página de configurações de tema segura e codificada, confira este tema: enlace