Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Pega un query string — o una dirección entera, y se saca el query de ella — y obtén una línea por parámetro con el valor decodificado. Las claves repetidas se conservan como líneas propias en lugar de que la última pise a las anteriores, porque ahí es justamente donde suele estar la información que se busca.
Dónde se ejecuta
No se sube nada, porque no hay archivo: se calcula en esta misma página.
Sin cola y sin cuenta
Responde tan rápido como dé tu máquina, y nunca pregunta quién eres.
Tantas veces como quieras
No se cuenta nada ni se limita nada: volver a responder no nos cuesta nada.
Un query string puede llevar el mismo nombre varias veces, y `etiqueta=a&etiqueta=b` es la forma habitual de una selección múltiple. Quien lo cargue en un diccionario pierde todo salvo el último valor — una pérdida de datos que ninguna advertencia señala.
Aquí cada aparición tiene su propia línea. Importa más de lo que suena, porque los frameworks no se ponen de acuerdo: PHP quiere `etiqueta[]=a&etiqueta[]=b`, Rails interpreta los corchetes de otra manera y Express tiene varios modos. Si una selección múltiple llega a medias, el motivo está casi siempre aquí.
La entrada no tiene que ser una dirección entera. Un query string con el interrogante inicial o sin él funciona igual que una URL completa, de la que entonces se extrae el query — cómodo, porque lo que uno copia de una exportación de analítica o de un registro rara vez es la línea completa.
Se reconoce por si aparece un interrogante o un signo igual. Una entrada sin ninguno de los dos no es un query string sino texto corriente, y no se trata como tal — una regla que suena obvia y sin la cual una URL entera se leería como un único nombre de parámetro.
En un query string, `+` significa tradicionalmente espacio. Viene de `application/x-www-form-urlencoded`, el formato con el que envían los formularios HTML, y es anterior a la especificación actual de URL; ha sobrevivido porque los formularios lo siguen usando.
La consecuencia es una trampa: un signo más de verdad dentro de un valor hay que escribirlo `%2B` o desaparece. Afecta sobre todo a los números de teléfono en formato internacional y a los correos con subdirección — un `[email protected]` se convierte al leerlo en `a [email protected]`, y la entrega falla en un punto al que nadie mira.
Un destino de redirección como parámetro es el caso más común de codificación anidada: el valor de `siguiente` es a su vez una URL cuyas barras e interrogantes tienen que ir escapados para que no descompongan la dirección exterior. Al decodificar vuelve a ser una dirección legible.
Aquí se ve también si alguien ha codificado dos veces: si en el valor decodificado sigue habiendo un `%2F`, la entrada había pasado dos veces por un codificador. Y quien reciba una redirección así debería contrastar el destino con una lista de hosts permitidos — las redirecciones abiertas nacen exactamente en este punto.
Por defecto los valores se decodifican, que es el sentido de la página. El interruptor para la forma cruda no es un adorno: si se calcula una firma sobre el query string, lo que cuenta es la escritura codificada exacta, y una diferencia entre `%20` y `+` decide entre aceptar y rechazar.
Es igual de útil para buscar doble codificación. Un `%2520` en el valor crudo es la prueba inequívoca de que en algún punto de la cadena se ha vuelto a codificar un valor ya codificado; en el resultado decodificado de eso solo queda un `%20` sospechoso.
`utm_source`, `utm_medium`, `utm_campaign`, `utm_term` y `utm_content` vienen de Urchin, la herramienta de la que salió Google Analytics — de ahí el nombre. No hacen nada en el servidor: son texto que lee un script de medición en el navegador.
Como no hacen nada, se pueden quitar sin consecuencias al reenviar un enlace, si no quieres mezclar la estadística de quien te lo mandó con la tuya. Y como van en la dirección, acaban en historiales, en enlaces compartidos y en marcadores — la razón de que algunos enlaces de newsletter sean absurdamente largos.
Las direcciones acaban en el registro del servidor, en el historial del navegador, en la cabecera de referrer del siguiente clic y a menudo en el registro de un proxy por el camino. Una contraseña, una clave de sesión o un token en un parámetro está por tanto guardado en al menos cuatro sitios en los que nadie pensó.
Para los enlaces de confirmación y de restablecimiento, donde no hay manera de evitarlo, la regla es: vigencia corta, un solo uso, y quitarlo de la dirección nada más abrirlo. Si aquí ves un valor con pinta de secreto, ese es el hallazgo — no el hecho de que se haya podido decodificar.
Un `?debug` sin valor, un `?a=` con valor vacío y un parámetro ausente son tres cosas distintas, y los frameworks las tratan de manera distinta: unas veces como cadena vacía, otras como `true`, otras como inexistente. Aquí se muestran tal y como están en la cadena.
Es más relevante de lo que parece. Un interruptor que se pasa como nombre a secas llega en algunos lenguajes como valor vacío y allí se evalúa como falso — el parámetro está puesto, la función no se activa, y en ningún registro consta nada llamativo.
Los query strings de registros y de exportaciones de analítica llevan con frecuencia datos personales: términos de búsqueda, correos como parámetro, identificadores asociables a una cuenta. Como aquí se descompone en la propia página, nada de eso sale de tu equipo.
Es la condición para poder mirar una exportación así con una herramienta online. Un servicio que la descompusiera en un servidor habría recibido la línea y la tendría en sus registros — con justo la clase de datos cuya cesión es el motivo de la mayoría de las políticas internas.
No. Basta un query string, con el interrogante inicial o sin él. Si pegas una dirección completa, se extrae el query de ella.
Porque en un query string el + significa espacio por herencia de la codificación de formularios. Un más de verdad hay que escribirlo %2B o desaparece. Afecta sobre todo a teléfonos internacionales y a correos con subdirección.
Cada aparición tiene su propia línea. Esa es la diferencia con cargarlo en un diccionario, donde se pierde todo menos el último valor — y ahí es donde está la información en una selección múltiple.
Para firmas, donde cuenta la escritura codificada exacta, y para buscar doble codificación. Un %2520 en el valor crudo demuestra que en algún punto se ha vuelto a codificar un valor ya codificado.
No. Se descompone y se decodifica en esta página. Con líneas de registros y de exportaciones de analítica cuenta, porque llevan términos de búsqueda, identificadores y a veces tokens.