Audio
|
Quando se trata de segurança para WordPress a constante DISALLOW_FILE_EDIT é comumente lembrada, já a sua concorrente DISALLOW_FILE_MODS é confundida, ignorada ou desconhecida. Afinal, qual devemos utilizar? Qual a diferença entre elas? Devo utilizar as duas?
De imediato a resposta é não para a última pergunta, e no decorrer deste artigo veremos em detalhes as respostas para os demais questionamentos e estenderemos o assunto para abordarmos o benefício de cada uma, como fazer o uso correto, como os desenvolvedores de plugins podem ser impactados e os tipos de ataques que elas previnem.
Sobre o editor de plugins e temas nativos do WordPress
A imagem acima ilustra a localização do editor de temas e plugins na administração do WordPress. Essa funcionalidade é nativa e através dela é possível editar códigos PHP dos plugins e temas. Com ele é possível, também, além da edição dos códigos desses componentes, executar seus próprios códigos.
Por que desabilitar o editor de plugins e temas do WordPress

Convenhamos que usuários com pouco conhecimento técnico não deve ter a sua disposição uma funcionalidade como essa, é um risco para a segurança e perfeita funcionalidade da aplicação. A chance de fazer algo errado é real. Coisas simples como alterações de CSS requer um cuidado com a compatibilidade entre os navegadores de internet. A falta de um “;” (ponto e vírgula) após uma instrução PHP, por exemplo, paralisará o código.
Além disso se algum atacante conseguir acesso a sua conta ele poderá injetar códigos maliciosos facilmente através do editor. Essa funcionalidade é a primeira tentativa dos atacantes, uma vez que ela permite a execução de códigos PHP.
Se a disponibilidade do editor de temas e plugins do WordPress é perigoso para usuários não técnicos, se ele pode ser utilizado por atacantes para injetar códigos e considerando que os desenvolvedores organizam seus códigos de forma versionada, não há motivos para mante-lo.
Para ilustrar uma cenário clássico. Um atacante tem conhecimento do seu nome de usuário, veja como dificultar a descoberta. Através de um ataque de força bruta “descobre” sua senha e acessa a área administrativa com todos os privilégios. Com o editor disponível rodará seus códigos para os diversos fins: injetar bakdoors – saiba mais a respeito, enviar e-mails em massa, consultar as informações disponíveis no banco de dados e a lista continua.
Como desabilitar o editor de plugins e temas do WordPress
Desabilitar o editor de plugins e temas do WordPress é simples e requer o uso da constante DISALLOW_FILE_EDIT ou DISALLOW_FILE_MODS com o valor true no arquivo wp-config.php da sua instalação WordPress. Para exemplificar com códigos, teríamos algo assim:
define( 'DISALLOW_FILE_EDIT', true );
ou
define( 'DISALLOW_FILE_MODS', true );
A diferenca entre DISALLOW_FILE_EDIT e DISALLOW_FILE_MODS
Os nomes das constantes são bem sugestivos quanto as suas funcionalidades. A constante DISALLOW_FILE_EDIT vai proibir a edição de arquivos através do editor nativo do WordPress.

A constante DISALLOW_FILE_MODS implementa a mesma funcionalidade que a DISALLOW_FILE_EDIT, no entanto evita também que os plugins e temas sejam instalados e atualizados, bem como o próprio core do WordPress. Se você considerar o uso da constante DISALLOW_FILE_MODS seja responsável com o processo de atualização do WordPress e seus componentes, e não precisa utilizar em conjunto a constante DISALLOW_FILE_EDIT, uma vez que a primeira também implementa a funcionalidade da segunda.

Os tipos de ataques evitados ao fazer uso das constantes DISALLOW_FILE_EDIT e DISALLOW_FILE_MODS
Toda implementação de segurança ajuda a dificultar a vida do atacante e deixar seu site mais seguro. Fazer uso das constantes DISALLOW_FILE_EDIT ou DISALLOW_FILE_MODS ajuda prevenir que os atacantes possa executar seus códigos maliciosos caso ele ganhe acesso privilegiado ao painel administrativo do WordPress.
É uma camada adicional de proteção que somada as outras práticas de segurança vai ajudar seu WordPress ficar mais seguro e protegido.
As capacidades e o impactos para plugins e temas
O uso das constantes DISALLOW_FILE_EDIT ou DISALLOW_FILE_MODS impactará as capacidades dos usuários em relação as suas atividades de gestão. É importante ficar atento ao impacto causado para saber como lidar e antever possíveis impactos. Seja na gestão da plataforma, como no impacto aos plugins e temas em uso.
O uso da constante DISALLOW_FILE_EDIT é equivalente a remover de todos os usuários as capacidades (capabilities) edit_themes, edit_plugins e edit_files.
Já as capacidades update_plugins, delete_plugins, install_plugins, upload_plugins, update_themes, delete_themes, install_themes, upload_themes e upload_core são impactadas com o uso da constante DISALLOW_FILE_MODS.
Desenvolvedores de plugins e temas devem ficar atentos a essa questão. Se as capacidades citadas forem utilizadas é possível que elas não estejam disponíveis com o uso da constante. Esteja atento ao fato e se realmente seu plugin ou tema considerar o uso da verificação dessas capacidades considere exibir uma mensagem de alerta.
Qual utilizar DISALLOW_FILE_EDIT ou DISALLOW_FILE_MODS?
No mínimo uma delas você deve considerar o uso. A DISALLOW_FILE_MODS é mais restritiva e impacta o processo de instalação de temas e plugins, bem como suas atualizações e a do próprio WordPress. O tipo de projeto, de negócio e perfil dos usuários vai te balizar sobre caminho seguir. Conhecendo a funcionalidade e impacto de cada uma delas você tomará a decisão mais acertada.
Bom dia Leandro, nossa excelente artigo, parabéns. É muito interessante essas temas que envolve seguranca, para quem quer se tornar um especialista em WordPress. Não pare de publicar esse tipo de conteúdo.
Boa Noite, excelente dica, acabei de colocar define( ‘DISALLOW_FILE_EDIT’, true ); em meu site.