Releases: aryribeiro/ary-block
Release list
Ary Block 1.0.2
Primeira versão pública do Ary Block, já em produção no Direto Notícias.
O que ele faz
Portão de upload. Para quem está abaixo de administrador, recusa na biblioteca de mídia os formatos bloqueados e os arquivos acima do limite, com uma mensagem que diz o número — e que, no caso de vídeo, ensina o caminho do YouTube em vez de só barrar. Administradores e publicações automáticas (cron, WP-CLI, REST) nunca são bloqueados.
Colar imagem. Ctrl+V de uma imagem no editor clássico, na aba Visual ou na aba Texto: o navegador converte para JPEG, o servidor reconverte sem confiar no cliente, e o arquivo é gravado na biblioteca de mídia anexado à notícia. O editor de blocos resolveu isso; o editor clássico nunca resolveu.
Endurecimento desta versão
Uma revisão de segurança feita antes de abrir o código encontrou três problemas, todos corrigidos aqui:
- Capacidade errada na rota de colagem. Ela exigia
edit_posts, mas quem grava na biblioteca de mídia precisa deupload_files— e o papel Colaborador tem a primeira sem ter a segunda. Comomedia_handle_sideload()não confere capacidade nenhuma, aquela linha era a única guarda até a biblioteca. - O portão falhava aberto para apelidos de extensão. O WordPress aceita
jpg|jpeg|jpe,mov|qt,mp3|m4a|m4begz|gzipcomo chaves compostas, e a tabela não cobria os apelidos. Extensão fora da tabela era aceita sem limite nenhum: bastava renomear um vídeo para.ogvou.mpgpara subi-lo em qualquer tamanho. Agora cada apelido herda a regra do seu formato canônico, e um teste roda o filtro contra a tabela real do núcleo exigindo que nenhuma das 70 extensões sobreviventes caia no caminho sem limite. - Consumo de recurso sem teto. Teto de 50 megapixels na entrada, contra bomba de descompressão; conferência do tamanho anunciado antes de baixar imagem por endereço; e a normalização passou de até 24 decodificações do arquivo original para no máximo 6.
Também entraram um grupo novo de código e executáveis bloqueado por padrão (HTML na biblioteca vira página no próprio domínio), suporte a AVIF como imagem aceita, e Update URI no cabeçalho para que o slug não seja sequestrado por um plugin homônimo publicado no diretório oficial.
Instalação
Baixe ary-block.zip abaixo e instale por Plugins › Adicionar novo › Enviar plugin. Requer PHP 8.1 e WordPress 6.0 ou superior; testado no WordPress 7.0.
95 testes, 246 asserções.