KamoCRM

Comparações secretas internas são tempo constante e falham fechadas

FixConversionService
Navios
23 de setembro de 2026 às 10:12 UTC
Autor
Kamo
Enviar
e94af78

TranscriptionController, RecordingIngestController e RecordingProcessController todos comparados X-Internal-Auth com String.equals (um oráculo de tempo em um segredo compartilhado) e padrão ******************* para o literal "dev-secret-change-in-prod" - ambos no Java Anotação @Value e no padrão do próprio placeholder do k8s/configmap.yaml. O *** Ref secreto em implantação. yaml é `opcional: true`, então um ambiente sem esse segredo montado e, portanto, à imagem, em vez de recusar chamadas de serviço a serviço que não pôde verificar. Agora: MessageDigest.isEqual para a comparação, e cada padrão literal removido (Java e ConfigMap) para que um segredo não definido resolva em branco e cada um destes controladores recuse o Chama. Confirmado seguro para produção antes de remover os padrões: kubectl mostra o O K8s Secret existe com um verdadeiro... valor em o espaço de nomes kamo, e implantação. O yaml já o puxa via envFrom/secretRef. Novos testes **************************** **************************** **************************** cobrir a recusa em branco/null-secreto e, especificamente, o caso que distingue o velho do novo comportamento: com o secreto em branco forçado, "".equals("") é verdade, então O velho single 'auth' é nulo. verificar deixar um chamador que enviou um EMPTY X-Internal-Auth cabeçalho direto para a lógica de negócios. Controlo das mutações controladores pré-fixação: 3 de 13 testes (exatamente os três ********** casos) Fica vermelho sem esta solução.

Todas as alterações

Como o que vês no transporte?

Tudo isso chega em seu espaço de trabalho por conta própria. Comece no plano gratuito e leia esta página novamente em um mês.

Começar Livre Para SempreVer Preços