Sem HTML no aviso global

Este tópico foi resolvido pela equipe do Discourse. Vou manter o tópico original ativo para fins de arquivamento, mas o problema já foi solucionado por @Roman e pela equipe.


Recentemente, reconstruí o Discourse para atualizar minhas configurações de SMTP e as tags HTML do meu aviso global agora estão sendo exibidas como texto.

É assim que fica com as tags:

Bem-vindo aos NOVOS Fóruns de Motociclismo Real Racin' USA!


Suas orações e desejos foram atendidos.

Preparamos uma experiência de fórum mais rápida, moderna e fácil de usar para você, migrando tudo do fórum antigo para este. Todos os seus tópicos, posts e perfis de usuário foram mantidos intactos, exatamente como você os deixou!

Por favor, leia nossa postagem "Quero minha conta de volta!" para instruções sobre como acessar sua conta.

Agora que a poeira baixou, ainda estamos verificando este fórum para garantir que esteja funcionando corretamente para todos.

Para todas as atualizações sobre o fórum e para obter assistência, visite a página do Facebook da Sunshine State Racing.

Mas após a reconstrução, obtenho isso:

Encontrei algumas alterações nas notificações globais em um commit recente que desativaram isso.

Então, existe alguma maneira de incluir links nos avisos globais agora?

Minha alternativa foi fazer um post e fixá-lo como um tópico de banner.

Sim, não permitimos mais que a configuração do site “aviso global” contenha HTML, apenas texto simples. Optamos por tratá-lo como qualquer outra entrada de usuário e sanitizá-lo.

Como mencionado acima, a solução alternativa seria usar um tópico de banner.

Que pena, isso era realmente útil.

Obrigado por esclarecer.

Hm, apenas minha opinião, mas os dois têm propósitos bem diferentes.

O banner global existe por um motivo, ou seja, quando quero notificar o fórum sobre um tópico importante. Se um usuário fechou o banner, essa configuração permanece e ele não verá uma atualização que, de outra forma, seria visível com um aviso global.

Sim, decidimos manter a configuração porque sabemos o quão útil é ter um banner não descartável durante uma situação urgente, mas permitir HTML não sanitizado pode ser potencialmente perigoso.

Se alguém tem permissão para definir um aviso global, então essa pessoa também está autorizada a criar um componente de tema? Ou seja, não há nenhum vetor de ataque adicional aqui?

Para deixar claro, não consideramos isso um problema de segurança, pois apenas administradores podem atualizar essa configuração. Isso faz parte de um esforço contínuo para desabilitar o uso de HTML nas configurações do site e utilizar outras ferramentas projetadas para esse fim.

Deixe-me apresentar um argumento a favor da permissão de HTML. Estou trabalhando com um cliente que está lançando um fórum para investidores. (O beta fechado começou ontem, aliás.) A equipe jurídica deles exige um aviso legal. Ele deve:

  • Ser exibido de forma proeminente em todas as páginas do fórum.
  • Não poder ser descartado.

Ou seja, um aviso global.[1]

Para um exemplo (não é o site com o qual estou trabalhando, mas está no mesmo segmento), veja o aviso legal no Freetrade. É importante notar que o jurídico não se importa se o aviso inclui HTML. Eles apenas querem ver que ele está lá e que os usuários não podem alegar que não o viram.

Infelizmente, o aviso é um pouco feio porque é um grande bloco de texto. Felizmente, o jurídico aceita uma fonte menor e o uso de um link para o aviso legal completo. A equipe enviou o texto ao jurídico na semana passada, que incluía um link para o aviso. Esta semana, descobrimos que HTML não é mais permitido em um aviso global. Que divertido.

Enquanto isso, se estivéssemos usando isso para o propósito pretendido (“AVISO URGENTE, DE EMERGÊNCIA, global e não descartável para todos os visitantes”), não seria útil ter uma maneira de linkar para uma página de status ou outro local para saber mais?

Na verdade, não é “qualquer outra entrada de usuário”, não é? É uma configuração do site que apenas um punhado de pessoas pode alterar. Do ponto de vista dos proprietários do site, isso não é entrada de usuário, mas parte da interface fornecida aos usuários.[2]

Existe alguma explicação da lógica em algum lugar? Se vocês estão trabalhando em outra ferramenta para suportar avisos globais não descartáveis que permitam links,[3] seria útil saber quando estará pronta. Eu preferiria evitar ter que configurar uma personalização, se possível.

Peço desculpas se pareci um pouco rabugento. Não sabíamos que essa mudança estava chegando e isso nos coloca em uma situação constrangedora. A comunidade estava prestes a ser aberta a um público maior na próxima semana e essa mudança atrapalha os planos.



  1. Posso ver um argumento de que isso é um mau uso do recurso. Mas se fôssemos construir esse recurso nós mesmos, ele funcionaria exatamente como um aviso global. :man_shrugging: ↩︎

  2. Entendo que, do ponto de vista do Discourse, administradores são usuários. Apenas parece que não é a maneira correta de pensar sobre isso neste caso. ↩︎

  3. E também estilização, mas isso é secundário. ↩︎

Minha motivação inicial para isso é uma proteção adicional das entradas do banco de dados, principalmente devido a problemas de codificação com um fórum antigo que eu usava.

Os emojis no fórum eram convertidos para o formato &# e, ao serem citados, causavam erros de “Sequência de bytes inválida em utf-8” durante a conversão, fazendo com que o fórum exibisse os emojis como símbolos �.

Pensei que algo semelhante poderia ocorrer com tags HTML em uma atualização futura, causando problemas no banco de dados e tornando todas as comunidades inoperantes.

Alguém que conhece melhor o código provavelmente poderia garantir que isso provavelmente não acontecerá, graças às várias verificações que cada correção passa antes de ir para a branch principal para download/atualização. A equipe do Discourse se esforça para manter o sistema como uma solução autossuficiente, sem problemas e de um clique para todos que desejam uma comunidade online, e têm se saído muito bem nisso!

No entanto, minha solução simples tem sido suficiente por enquanto, até que uma nova solução seja publicada. Também é agradável ter menos desordem na tela, já que é possível descartar tópicos de banner.

Peço desculpas pelo inconveniente. Para criar um banner não descartável, dê uma olhada neste componente de tema:

É muito mais poderoso e personalizável do que o aviso global.

Reativamos o suporte a HTML na configuração de aviso global. Estamos buscando uma maneira melhor de garantir uma transição suave.

Na descrição abaixo do campo de aviso global, você pode colocar:

“O suporte a HTML será removido em uma versão futura”

Além disso, quando foi desativado, a descrição ainda dizia “HTML permitido”.

@Roman_Rizzi Quando será lançada a versão com o aviso global?

Discutimos sobre isso e decidimos manter o suporte a HTML para a configuração de aviso global, então ele não será removido tão cedo.

O que estou deixando de ver então? Por que não está funcionando no nosso fórum?

Atualize seu Discourse. Ele foi reativado há alguns dias, então execute uma atualização e o problema deve ser resolvido.

Obrigado pela resposta super rápida! Acabei de atualizar, mas ainda não funciona (o HTML está aparecendo).