Revisão técnica: 08/09/2026.
Para prevenir XSS em plugins e temas WordPress, valide e sanitize os dados recebidos, escape cada valor no momento da saída e aplique autorização às ações. O escape precisa corresponder ao contexto — texto, atributo, URL, HTML ou JavaScript — porque uma função usada no lugar errado pode deixar a injeção passar.
Entenda onde o dado será exibido
Mapeie entradas de formulários, URLs, APIs, banco e metadados até a renderização. Um valor seguro como texto pode ser perigoso dentro de atributo ou script. Evite inserir dados não confiáveis em JavaScript inline e prefira APIs que criem nós de texto em vez de interpretar HTML.
Valide e sanitize na entrada
Defina tipo, tamanho, opções permitidas e formato conforme a regra de negócio. Use a função de sanitização mais específica disponível e rejeite o que não puder ser representado com segurança. Sanitização reduz dados indesejados, mas não substitui a validação nem autoriza a operação.
Faça escape conforme o contexto
Escape o mais tarde possível, no ponto em que o valor será impresso. WordPress oferece funções diferentes para HTML, atributos, URLs e JavaScript. A documentação oficial sobre escape de dados no WordPress orienta escolher a função conforme o local da saída.
Verifique capacidade e intenção
Antes de salvar ou executar uma ação, confirme a capacidade do usuário e o objeto envolvido. Use nonces para reduzir requisições forjadas, mas não os trate como autenticação ou autorização. Aplique as verificações também em AJAX, REST, importadores e tarefas administrativas menos visíveis.
Evite correções genéricas
Um filtro global ou política de navegador não corrige todos os contextos. A OWASP destaca que XSS exige uma combinação de defesas. Não remova proteções para aceitar HTML arbitrário; quando HTML limitado for necessário, use uma lista permitida adequada ao conteúdo.
Teste, atualize e divulgue com responsabilidade
Inclua testes com caracteres especiais, atributos, URLs e permissões diferentes. Revise dependências e atualize os sites após uma correção. Ao encontrar uma falha em plugin de terceiros, contate o desenvolvedor e siga divulgação coordenada antes de publicar detalhes exploráveis. Para outra classe de entrada insegura, leia como prevenir injeção de SQL; administradores podem seguir o guia para responder a um plugin vulnerável.