ASIN Watcher
Seguridad

Cómo se protege tu cuenta

Esta página describe lo que está realmente implementado, con detalle suficiente para que alguien lo pueda comprobar. No tenemos ninguna certificación que enseñarte ni ninguna auditoría que citar, así que lo que sigue es el mecanismo en sí.

Contraseñas

Tu contraseña no se guarda. Lo que se guarda es una derivación PBKDF2-HMAC-SHA256: cien mil iteraciones sobre una sal aleatoria de 32 bytes, generada por separado para cada cuenta, con un resultado de 32 bytes.

Esa sal por cuenta es la razón por la que una base de datos robada no se puede atacar en bloque. Una tabla precalculada habría que rehacerla para cada cuenta, que es la diferencia entre romper una contraseña y romperlas todas de una vez. La comparación al iniciar sesión es de tiempo constante, así que la verificación misma no delata qué tan cerca estuvo un intento.

Esto va en un solo sentido. No podemos leer tu contraseña, no podemos recuperarla y no podemos dictártela por soporte. Una contraseña olvidada se restablece, nunca se recupera. Los enlaces de restablecimiento y los de verificación de correo se guardan igual, en forma de hash y nunca en claro, así que tener la base de datos no le entrega a nadie un enlace que funcione.

Sesiones

Al iniciar sesión se emite un token firmado que vale quince minutos y un token de renovación que vale treinta días. El corto es el que viaja en cada petición, así que un token filtrado deja de servir solo, y pronto.

No son intercambiables. Cada uno lleva un campo que declara su tipo, y un token de renovación presentado donde corresponde el de acceso se rechaza en vez de aceptarse en silencio.

Los dos apuntan a una sesión guardada en el servidor, y esa sesión queda atada a la dirección de red y al navegador que la crearon, así que un token sacado de una máquina no sirve sin más desde otra. Cambiar la contraseña termina de golpe todas las sesiones activas.

Intentos fallidos: espera, no bloqueo

Los tres primeros intentos fallidos de una cuenta no cuestan nada. A partir del cuarto, cada fallo añade una espera que se duplica y que deja de crecer a los cinco minutos. Un inicio de sesión correcto pone el contador a cero.

La cuenta nunca se bloquea. Es deliberado. Quien conozca tu correo podría provocar el bloqueo cuando quisiera, y una política que le permite a un desconocido dejarte fuera de tu propia cuenta cambia un problema por otro peor. Una espera que crece hace que adivinar deje de ser viable, y no le da a nadie esa palanca.

Las peticiones también tienen un límite general, contado por dirección de red y por la ruta que se pide. Añadir un producto se limita por cuenta y de forma más estrecha: diez por minuto antes de que verifiques tu correo y cincuenta después.

Pagos

Los números de tarjeta no llegan a nuestros servidores. Los campos de la tarjeta y la autorización son cosa de Stripe y de PayPal; lo que vuelve a nosotros es una referencia de la transacción. En nuestra base de datos no existe una columna para el número de tarjeta, el código de seguridad ni la cuenta bancaria, lo cual es más firme que prometer que no miramos.

Los mensajes con los que esos proveedores confirman un pago se verifican antes de creerlos. Con uno de ellos eso significa recalcular aquí la firma y compararla en tiempo constante, dentro de una ventana de 120 segundos para que un mensaje viejo no se pueda reenviar; con el otro significa una llamada de verificación al propio proveedor. En ambos casos el cuerpo está topado en 64 KB, para que un envío desmedido no sirva para agotar el servidor.

Bitcoin y transferencia bancaria los confirma una persona. Es más lento, y no involucra ningún dato de tarjeta.

El resto de la superficie

Las respuestas llevan las cabeceras que impiden que se engañe al navegador: sin que adivine el tipo de contenido, sin permitir que la página se incruste en otro sitio, HTTPS fijado por un año con subdominios incluidos, una política de referente que no le entrega la URL completa a terceros, y geolocalización, micrófono y cámara desactivados por política. Todo lo que lleva datos de tu cuenta va además marcado para que ninguna caché intermedia lo conserve.

Este sitio envía una política de seguridad de contenido que toma su propio origen como opción por defecto, prohíbe que la incrusten en otro sitio y deja correr un script escrito dentro del HTML solo si su hash está en la lista. La única excepción declarada es la dirección de la que la página de precios saca sus cifras.

Los archivos adjuntos de los tickets de soporte se revisan por algo más que su nombre: la extensión tiene que ser una de cuatro, el tamaño está topado en cinco megabytes, y los primeros bytes del archivo deben corresponder al tipo que dice ser. El nombre del archivo se recorta a su última parte antes de escribir nada, de modo que no puede apuntar fuera del directorio de subida.

Los valores que tú envías llegan a la base de datos como parámetros ligados, no como texto pegado dentro de una consulta. Nada del código expuesto a la web evalúa datos como si fueran código, y la verificación TLS no se desactiva nunca para que una llamada salga adelante.

Lo que no afirmamos

No tenemos ninguna certificación de seguridad. No nos ha auditado ningún tercero. Y no vamos a imprimir un acrónimo de cumplimiento en esta página, porque los que significan algo exigen pruebas que no tenemos y los que no significan nada son peores que el silencio.

Tampoco hay aquí una cifra de disponibilidad. Las comprobaciones son periódicas, el servicio se puede interrumpir por mantenimiento, y un número inventado para una página de marketing sería lo menos fiable que hubiera en ella.

Todo lo anterior describe el código tal como está hoy. No es una garantía de que no haya nada mal. Nadie honesto ofrece eso, y por eso existe la siguiente sección.

Reportar un problema

Si encuentras una vulnerabilidad, escribe a [email protected] con la palabra seguridad en el asunto. La misma dirección está publicada en formato legible por máquinas en /.well-known/security.txt, donde las herramientas de divulgación esperan encontrarla, con inglés y español declarados como idiomas de respuesta.

Un reporte útil dice qué hiciste, qué pasó y qué esperabas en su lugar. Una URL, una petición y la cuenta que usaste suelen bastar. Las capturas ayudan; la salida cruda de un escáner casi nunca.

Prueba contra tu propia cuenta y detente en la demostración. Leer datos de otra persona, borrar algo o lanzar carga contra el servicio convierte un reporte que queremos en un incidente que tenemos que atender.

Danos un plazo razonable para corregirlo antes de publicarlo, y dinos si quieres que te acreditemos cuando lo hagamos. Última revisión de esta página: 15 de agosto de 2026.