- Navios
- 7 de agosto de 2026 às 05:02 UTC
- Autor
- Kamo
- Enviar
- 21670e5
O gateway parou de codificar strings de consulta enviadas em 3c24d32, mas quatro outros proxies neste serviço ainda concatenados bytes já codificados em percentagem em um String e entregou-o à sobrecarga de String de RestTemplate, que trata como um modelo URI e codifica- o uma segunda vez:% 2C esquerda como% 252C, o montante decodificado uma vez e obteve o token literal A% 2CB. Estas são todas as superfícies públicas, por isso as falhas são silenciosas e terra fora do empresa: - /api/public/esign/** — status do cliente do plano de negócios=SENT%2CCOMPLETED O filtro chegou ao ESigService como um token. - /api/public/webinar/** — mesma forma, lado MediaService. - /api/social/webhook/{token} — O aperto de mão GET checking É a consulta string. Um token Meta- verificar contendo um espaço comparado a jusante desigual e MediaService respondeu 200-vazio, então Meta deixou cair a assinatura; X's crc token é HMAC'd verbatim, então um mutilado desregistra o webhook. Seguro para mudanças: A assinatura da Meta x-hub-assinature-256 e X são ambas HMAC sobre o corpo bruto (MessengerAdapter:110, InstagramAdapter:114, XAdapter:151), que é transmitido como um byte intocado[]. Nenhuma assinatura cobre o URL. - /api/public-chat/** — os três manipuladores que anexam getQueryString(). O ajudante sai da APIGatewayController para UpstreamUri para quatro classes compartilhar um ramo de análise e queda-de-volta em vez de quatro cópias. Um URL que URI.create rejeites (espaço em bruto, , {}, fuga truncada — formas que funcionam hoje apenas por causa do segundo codificar) ainda vai para o caminho velho String com um AVISO, então o tráfego mal formado comporta-se exatamente como fez. O chat público precisava de um segundo ponto de entrada em vez do do portal. O seu caminho é construído a partir de @PathVariables que a Spring já DECODED enquanto sua consulta é raw, assim, envolvendo o URL concatenado em URI. criar teria sido um regressão: um token de sessão chegando como abc%23xyz decodifica para abc#xyz, que URI.create aceita enquanto silenciosamente trunca o caminho no fragmento. A metades são mantidas separadas para o local de chamada — o caminho codificado através do mesmo UriComponentsBuilder chamada padrãoUriBuilderFactory faz, então esses bytes são inalterado; a consulta foi deixada em paz. Os sete manipuladores sem consulta mantêm o String caminho intocado: nenhuma consulta, nenhum código duplo para corrigir. Deliberadamente NÃO mudou, e eles devem permanecer assim — todos codificam exatamente uma vez hoje, assim, ¿fixá-los¿ seria 502 tráfego ao vivo: DECODED @RequestParam locale), promoções de subscrição (fixo literal), Validar-chave em... (SHA-256 hex, um ponto fixo sob URI COMPONENT), LeadIntake PublicController (variável de caminho UUID decodificado, nunca chama getQueryString), a gravação VOIP ingerir POST (config literal, todas as entradas no corpo multiparte), e CapchaVerificationService (payload está no corpo JSON).