É impossível garantir segurança para WordPress sem a devida tratativa sobre a validação de dados captados dos usuários.
O assunto é de extrema importância e desenvolvedores de uma forma geral precisam levar o assunto mais sério e se aprofundar sobre o assunto ao lidar com os dados recebidos e demonstrados.
A validação de dados é importante e tem algumas regras simples e objetivas para serem seguidas:
- Não confie nos usuários e nos dados que lhe são entregues;
- Seu código, além de funcional, precisa ser seguro;
- Valide dados de entrada (input) e dados saída (output);
- Faça uso das funções nativas do WordPress para validação de dados.
Não confie nos usuários e nos dados que lhe são entregues
Tweet
Não confie nos usuários e nos dados que lhe são entregues
Mesmo em um ambiente que requer a autenticação dos seus usuários, não devemos confiar que as pessoas por trás das telas estão bem intencionadas com o uso da interface.
Se uma entrada de dados requer um número e nada mais além disso, ignore qualquer outro tipo de dado recebido. Aceite e siga em frente somente com os dados esperados.
Usuários podem ter suas contas invadidas e os invasores podem fazer mal uso do sistema caso os dados não sejam validados como deveriam.
Além disso, os dados têm fontes diversas e cada contexto de fonte de dados requerer uma tratativa específica. Por exemplo, há dados oriundos pela entrada dos usuários, dados captados em sites de terceiros, dados captados no banco de dados.
Seu código, além de funcional, precisa ser seguro
Ter um código funcional no tema e plugins desenvolvidos para um projeto em WordPress é mais do que uma obrigação de qualquer desenvolvedor.
Bons profissionais vão além e garantem uma maior segurança para todo ecossistema através de validação de dados consistentes.
Valide dados de entrada (input) e dados saída (output)
A validação de dados precisam ser considerada em dois extremos: na entrada (input) e saída (output) de dados. E o tipo de validação para cada cenário precisa ser de acordo com o contexto da informação.
As entradas de dados no WordPress acontecem em diversos cenários, como interfaces de configuração de temas e plugins, telas de configuração do WordPress, login de usuários, parâmetros de shortcodes, metainformações de posts e páginas, além de diversas outras fontes.
As saídas de dados precisam de tanta atenção quanto as entradas, uma vez que elas contribuem para a vulnerabilidade de XSS, marcações HTML mal formatadas, por exemplo.
Além disso, mesmo que uma informação de saída seja extraída de um banco de dados, ela também precisa ser validada. Não podemos confiar ou garantir que eles foram devidamente validados em sua entrada.
Faça uso das funções nativas do WordPress para validação de dados
O WordPress, assim como o PHP, fornece funções específicas para a validação dos mais variados tipos de dados, em seus contextos diversos.
É importante conhecer todas elas e suas formas de uso para garantir uma segurança nos seus códigos de plugins e temas.
Os tipos de dados que precisam ser validados:
- Dados inteiros;
- Marcações HTML/XML;
- Textos e valores de tags;
- Atributos de tags;
- Códigos JavaScript;
- URLs;
- Instruções SQL;
- Arquivos de sistema;
- Cabeçalhos HTTP;
- Em linhas gerais todas as informações de entradas e saídas.