Desarrollo

Las conversiones y comprobaciones que interrumpen el trabajo real. Todo local: no pegas datos internos en el servidor de otra persona.

16 herramientas

En profundidad

El riesgo real de las herramientas de desarrollo en línea

Busca un formateador de JSON o un decodificador de JWT y aparecerán decenas. El problema es que la mayoría envía tu entrada a un servidor para procesarla. Si ese JSON contiene correos de clientes y ese JWT es un token de sesión vivo, pegarlo es una fuga de datos.

Es fácil restarle importancia con «el token ya había caducado», pero en una revisión de incidente lo que pesa rara vez es si hubo filtración: es que no puedes demostrar hasta dónde llegó.

Todo en esta categoría se ejecuta en el navegador. La comprobación lleva diez segundos: abre la pestaña de red en las herramientas de desarrollo y usa la utilidad. No hay peticiones.

Dónde tropiezan JSON, Base64 y la codificación de URL

Un formateador de JSON se usa menos para embellecer que para localizar el error de análisis. Las causas habituales son una coma sobrante, comillas simples y caracteres invisibles arrastrados al copiar.

Base64 no es cifrado. Es una codificación que cualquiera puede revertir; su función es transportar binario por un canal de texto, no ocultar nada. Y al meterlo en una URL, + y / rompen cosas, así que hace falta la variante segura para URL con - y _.

En la codificación de URL, la pregunta es siempre qué parte estás codificando. Los segmentos de ruta y los valores de consulta requieren escapar caracteres distintos, y codificar una URL entera de una vez destruye también el ://.

Qué significa realmente «decodificar» un JWT

Un JWT son tres partes separadas por puntos —cabecera, carga y firma— y las dos primeras son Base64URL sin más. Cualquiera puede leerlas. Meter datos personales o identificadores internos en un token equivale a publicarlos.

Un decodificador solo lee esas dos partes. Verificar la firma es una operación aparte, y sin ella nada del contenido queda garantizado. Ese hueco es justo el motivo de que las implementaciones que aceptaban alg: none fueran una vulnerabilidad real.

La caducidad (exp) y la emisión (iat) son marcas de tiempo Unix, que no dicen nada a simple vista. Combinar el decodificador con el conversor de marcas muestra de inmediato cuándo muere un token.

Regex, cron y CIDR: lo que la simulación mental falla

Las expresiones regulares fallan sobre todo en los cuantificadores voraces. .* consume todo lo que puede, así que <.*> captura desde el primer < hasta el último > en lugar de una sola etiqueta. Hacerlo perezoso con .*? es el primer arreglo.

La trampa clásica de cron es especificar día del mes y día de la semana a la vez. En la mayoría de implementaciones se combinan como OR y no como AND, así que la tarea se ejecuta mucho más a menudo de lo previsto. Y si no compruebas el huso del servidor, «las 3 de la madrugada» pueden ser las 3 en otro sitio.

En el cálculo CIDR, las direcciones utilizables no son 2^(32−prefijo) sino eso menos la de red y la de difusión. Por eso un /30 da dos direcciones útiles y no cuatro, y por eso el /31 existe como caso especial para enlaces punto a punto.

Las utilidades menores

En conversión de marcas de tiempo, casi todos los errores son segundos frente a milisegundos. Diez dígitos son segundos; trece, milisegundos. El factor mil es lo que te lleva a 1970 o a dentro de cincuenta mil años.

La comparación de textos da resultados completamente distintos según se compare por línea o por carácter. La comparación por línea encaja en revisión de código; la de caracteres, en buscar una errata dentro de una frase.

La conversión de color se mueve entre HEX, RGB y HSL. HSL resulta mucho más cómodo para ajustes del tipo «un poco más claro», porque solo cambia un componente.

La generación de QR permite fijar el nivel de corrección de errores. Un nivel más alto densifica el código pero lo mantiene legible si la impresión se ensucia o una parte queda tapada.

Qué calcula el simulador de carga

El dimensionamiento de capacidad se apoya en la ley de Little, la identidad básica de la teoría de colas: el número de peticiones en el sistema es la tasa de llegada por el tiempo en el sistema. De ahí sale la concurrencia necesaria.

Lo contraintuitivo es que el tiempo de espera se dispara conforme la utilización se acerca al 100%. Pasar del 90% al 95% degrada el tiempo de respuesta mucho más que pasar del 70% al 80%. «Todavía queda un 10% de CPU» no es, por tanto, una señal de seguridad.

Es una aproximación de estado estacionario: los picos de tráfico y las tormentas de reintentos no están en el modelo. Úsalo como punto de partida y confírmalo con pruebas de carga reales.

Los límites de estas herramientas

Todo se ejecuta en el navegador, funciona sin conexión y nunca envía tu código, tus tokens ni tu configuración a un servidor. Al no haber cuenta, ningún valor queda ligado a una identidad.

El navegador es también una restricción: las entradas muy grandes consumen mucha memoria, y todo lo que exija una sonda de red real —escaneo de puertos, validación de cadenas TLS— queda fuera de alcance.