- Se descapó
- 5 de septiembre de 2026 a las 6:35 UTC
- Autor
- Kamo
- Compromit
- a5989d7
La carpeta viajó como un segmento de ruta, y Gmail separa su jerarquía con "/" - su carpeta Sent es "[Gmail]/Sent Mail". No hay manera de poner eso en uno Segmento: * codificado una vez, el %2F es rechazado por Tomcat y de nuevo por Spring Security's StrictHttpFirewall, 400 Mala Solicitud antes de que cualquier manejador funcione; * codificado dos veces, que el propio decodificador de este controlador de otra manera El %25 es rechazado por el mismo cortafuegos. Lo rechaza precisamente. porque un servicio que decodifica un camino dos veces es la forma-traversal se hacen bypasses, y relajando ese servicio para mover un nombre de carpeta sería un mal comercio. Así que el nombre ahora llega como un parámetro de consulta de "carpeta", donde ninguna regla se aplica y el decodificamiento único de Spring es exacto. El segmento de la ruta todavía se lee cuando el la consulta está ausente, por lo que cada URL ya emitida sigue funcionando; un llamante que envía el la consulta deja un marcador en el camino. Esto también fija dos defectos más silenciosos de la forma antigua, que decodificaron dos veces y así leer una carpeta llamada "Q3 y Q4" como "Q3 Q4" y uno llamado "100% Hecho" como un secuencia de escape.