Expressões regulares inválidas em 'Watched Words' impede o funcionamento de qualquer palavra observada

Ao ativar a configuração expressões regulares para palavras monitoradas, expressões regulares inválidas quebram completamente a categoria específica de palavra monitorada.

Passos para reprodução

  1. Ative ‘expressões regulares para palavras monitoradas’.
  2. Adicione um padrão de palavra monitorada a ‘Requer Aprovação’, por exemplo, mesmo problema.
  3. Adicione um padrão de palavra monitorada inválido, por exemplo, *ban* (como seria o caso se houver caracteres curinga nas palavras monitoradas antes de ativar as expressões regulares).
  4. Observe que uma postagem contendo ‘mesmo problema’ ignorará a fila de aprovação e também será ignorada pelo formulário ‘Testar’.
  5. Remova a palavra monitorada inválida.
  6. Observe que ‘mesmo problema’ agora corresponderá corretamente.

Passos para reprodução (pior cenário):

  1. Ative ‘expressões regulares para palavras monitoradas’ e tags.
  2. Adicione um padrão de palavra monitorada inválido a ‘Tag’, por exemplo, *tebex.io*pago.
  3. Tente criar um novo tópico. Isso retornará ‘Erro 500’ com o seguinte resultado em /logs:
RegexpError (alvo do operador de repetição não especificado: /*tebex.io*/)
app/services/word_watcher.rb:116:in `initialize'
app/services/word_watcher.rb:116:in `new'
app/services/word_watcher.rb:116:in `matches?'
lib/topic_creator.rb:184:in `block in setup_tags'
lib/topic_creator.rb:183:in `each'
lib/topic_creator.rb:183:in `setup_tags'
lib/topic_creator.rb:46:in `create'
lib/post_creator.rb:501:in `create_topic'

Nota de rodapé

Acho que seria bom que, mesmo com as expressões regulares desativadas, ainda fosse possível inserir uma regex válida de forma semelhante aos caracteres curinga, caso seja envolvida em um bloco /, especialmente porque a alternância pode quebrar de forma grave se houver palavras monitoradas antigas que já contenham caracteres curinga.

3 curtidas

Hmm, há alguma proteção que possamos adicionar aqui, @sam?

Existe um motivo para isso estar atrás de uma configuração do site, @blattersturm — você precisa saber o que está fazendo… expressões regulares são bastante perigosas.

1 curtida

Talvez precisemos de zero palavras monitoradas antes de alterar a configuração @nbianca?

Se você tentar alterá-la e tiver palavras monitoradas, pedimos que as exclua todas?

3 curtidas