Nombres y contraseñas poco comunes
Traducido automáticamente del inglés.
Leer en inglésEl campo de correo no es el único que los formularios de registro manejan mal. Se rechaza un nombre con apóstrofo, un nombre tailandés se corta a la mitad, una contraseña con un espacio se recorta sin aviso y <b>Jane</b> acaba en negrita en la página de perfil. Proxy Mail QA ofrece valores listos para los campos de nombre y contraseña de un formulario, igual que las direcciones poco comunes lo hacen para el campo de correo, agrupados según lo que la app debería hacer con cada uno.
Dónde obtenerlos
Sección titulada «Dónde obtenerlos»- Un agente:
get_name_variantsyget_password_variantsen el MCP server. El agente escribe cada valor en el formulario e informa de lo que hizo la app. - Una prueba:
qa.nameVariants()yqa.passwordVariants()en el paquete npm,name_variants()ypassword_variants()en el helper de Python, oGET /v1/variants/namesyGET /v1/variants/passwordsen la REST API. - A mano: Nueva dirección en la app ofrece un nombre de pila de caso límite en la persona; Proxy Mail QA for Chrome ofrece uno en sus tarjetas de relleno, y una contraseña de caso límite que cumple las reglas propias del campo.
Cada valor viene con tests (lo que comprueba) y value (qué escribir, exactamente).
Los grupos
Sección titulada «Los grupos»| Grupo | Qué significa | Qué comprobar |
|---|---|---|
accept |
El nombre de una persona real, o una contraseña dentro de las reglas del campo | La app lo acepta tal como se escribió, y la cuenta funciona después |
reject |
Rompe los límites propios del campo: demasiado largo, vacío, solo espacios, un símbolo donde no se permite ninguno | La app lo rechaza con un mensaje claro, sin crear una cuenta |
store_as_text |
Parece código: HTML, una etiqueta script, una inyección SQL, una expresión de plantilla | La app lo guarda y lo muestra exactamente como se escribió, nunca lo ejecuta |
decide |
Es razonable que las apps difieran: dígitos en un nombre, un emoji, espacios alrededor, solo dígitos en una contraseña | Anota qué hizo la app: lo aceptó, lo rechazó o lo cambió (recortado, escapado, acortado) |
Nombres
Sección titulada «Nombres»Pasa el campo (first_name, last_name, full_name o display_name) y su longitud máxima cuando la tenga, para que la lista incluya un nombre de exactamente esa longitud y uno que la supere en uno.
| Grupo | Valores |
|---|---|
| Aceptar | O'Brien, Smith-Jones, Mary Ann, J. R., Jean-Luc, D'Angelo, José, Zoë, Ñandú, Søren, Straße, Łukasz, İnci, 李, さくら, 김, Мария, Ελένη, محمد, דוד, प्रिया, สมชาย, una letra, exactamente el máximo |
| Rechazar | Uno más que el máximo, vacío, solo espacios |
| Guardar como texto | <b>Jane</b>, <script>alert(1)</script>, Robert'); DROP TABLE students;--, {{7*7}}, =1+1, Jane%00Doe |
| Decidir | Jane2, 3M, ***, ---, Jane&Co, A/S, Dr., #1, Jane 🌸, un espacio de ancho cero en medio, espacios antes y después, é compuesto y descompuesto, y 64, 128 y 255 caracteres cuando no se indica un máximo |
Los nombres árabes y hebreos se escriben de derecha a izquierda, el devanagari lleva marcas combinables y el tailandés no tiene espacios entre palabras: cada uno hace fallar un tipo distinto de validación. Los é compuesto y descompuesto son el mismo nombre en dos codificaciones; una app que no normaliza puede guardar dos cuentas para una persona.
Contraseñas
Sección titulada «Contraseñas»Pasa las reglas del campo: min_length (8 por defecto), max_length (64 por defecto) y si se permiten symbols (sí por defecto). Cada contraseña se crea desde cero con un generador aleatorio seguro, así que dos llamadas nunca comparten una.
| Grupo | Valores |
|---|---|
| Aceptar | Exactamente el mínimo, exactamente el máximo y (donde se permiten símbolos) cada clase: !@#$%, -_+=, ()[]{}<>, comillas, una barra invertida, un espacio en medio, éüñ |
| Rechazar | Uno menos que el mínimo, uno más que el máximo, un símbolo donde no se permite ninguno |
| Decidir | Solo dígitos, solo minúsculas, un espacio al principio, un espacio al final, un emoji, é compuesto y descompuesto, y cuando el máximo supera 72, dos contraseñas que comparten sus primeros 72 bytes |
Establece cada contraseña aceptada con el formulario y luego inicia sesión con ella: una contraseña que se acepta pero se recorta, se acorta o se recodifica al entrar no permitirá iniciar sesión tal como se escribió. bcrypt solo lee los primeros 72 bytes, así que la segunda contraseña del par de 72 bytes no debe permitir iniciar sesión como la primera.
Informe
Sección titulada «Informe»Informa de los resultados en una tabla: el valor, qué prueba, si el formulario lo aceptó, qué guardó la app (tal como se escribió, o cambiado) y, para las contraseñas, si funcionó el inicio de sesión. La skill signup-form-email-validation hace esto para direcciones, nombres y contraseñas a la vez.
Precauciones
Sección titulada «Precauciones»- Cada valor aceptado crea una cuenta distinta en la app. Prueba en un entorno de staging, o elimínalas después.
- Las cadenas de inyección son texto inofensivo. Solo comprueban que la app las trata como texto; nunca las uses contra una app que no sea tuya o que no tengas permiso para probar.
- En una shell, pon los valores entre comillas:
',",\,&,;,<y>tienen un significado para ella.
¿Tienes una pregunta sobre esta página?
Pregunta en cualquier idioma. La documentación puede responderte de inmediato, o puedes enviar tu pregunta al equipo de Proxy Mail QA, que responde en inglés.