Accesibilidad, usabilidad y seguridad en el desarrollo — Cuerpo de Gestión de Sistemas e Informática de la Administración del Estado
Test de 30 preguntas con explicaciones justificadas.
Pregunta 1: Según las WCAG 2.1, ¿cuál es el nivel mínimo de contraste (ratio) para texto de tamaño normal (menor de 18 puntos) según el criterio 1.4.3 (Contraste mínimo)?
- A) 3:1
- B) 4.5:1
- C) 7:1
- D) 2:1
Las WCAG 2.1 en su criterio 1.4.3 establecen un ratio de contraste mínimo de 4.5:1 para texto de tamaño normal (menor de 18 puntos o 14 puntos en negrita).
Pregunta 2: ¿Qué significa la sigla WCAG?
- A) Web Content Accessibility Guidelines
- B) Web Content Access Guidelines
- C) World Content Accessibility Guidelines
- D) Web Content Accessibility Group
WCAG significa Web Content Accessibility Guidelines, desarrolladas por el W3C para mejorar la accesibilidad web.
Pregunta 3: Según el RD 1112/2018 de accesibilidad web, ¿qué plazo tenían las webs del sector público para adaptarse a los requisitos de accesibilidad?
- A) 31 de diciembre de 2019
- B) 31 de diciembre de 2020
- C) 31 de diciembre de 2021
- D) 31 de diciembre de 2022
El RD 1112/2018 establece en su disposición final primera que las webs del sector público debían cumplir los requisitos de accesibilidad antes del 31 de diciembre de 2020.
Pregunta 4: ¿Cuál de las siguientes NO es una heurística de Nielsen para usabilidad?
- A) Visibilidad del estado del sistema
- B) Libertad y control del usuario
- C) Prevención de errores
- D) Uso de colores brillantes
Las 10 heurísticas de Nielsen incluyen visibilidad del estado, coincidencia entre sistema y mundo real, control y libertad del usuario, consistencia, prevención de errores, etc. "Uso de colores brillantes" no es una heurística.
Pregunta 5: En el contexto de OWASP Top 10, ¿qué tipo de ataque se produce cuando un atacante envía datos maliciosos como parte de un comando o consulta?
- A) Cross-Site Scripting (XSS)
- B) Cross-Site Request Forgery (CSRF)
- C) Inyección
- D) Exposición de datos sensibles
Según OWASP Top 10, la inyección (Injection) ocurre cuando un atacante envía datos hostiles que son interpretados como comandos o consultas por el sistema.
Pregunta 6: ¿Qué técnica de seguridad previene principalmente los ataques de Cross-Site Scripting (XSS)?
- A) Uso de HTTPS
- B) Autenticación de dos factores
- C) Validación de entrada y escapado de salida
- D) Cifrado de base de datos
Para prevenir XSS, es esencial validar y sanitizar todas las entradas del usuario y aplicar escapado de salida al mostrar datos en el navegador, tal como recomienda OWASP.
Pregunta 7: En el contexto de HTTPS, ¿qué garantiza el certificado digital?
- A) La velocidad de la conexión
- B) La identidad del servidor y el cifrado de la comunicación
- C) La protección contra virus
- D) La validación de la entrada del usuario
Un certificado digital en HTTPS permite autenticar la identidad del servidor y establece un canal cifrado mediante TLS, protegiendo la confidencialidad e integridad de los datos.
Pregunta 8: ¿Cuál de los siguientes es un tipo de prueba de seguridad que analiza el código fuente en busca de vulnerabilidades?
- A) DAST
- B) Penetration testing
- C) SAST
- D) Fuzzing
SAST (Static Application Security Testing) es un tipo de prueba que analiza el código fuente para identificar vulnerabilidades sin ejecutar la aplicación.
Pregunta 9: Según WCAG 2.1, ¿qué principio trata de que la información y los componentes de la interfaz deben ser presentados de forma que los usuarios puedan percibirlos?
- A) Perceptible
- B) Operable
- C) Comprensible
- D) Robusto
El principio de perceptibilidad en WCAG 2.1 (Principio 1) establece que la información y los componentes deben ser presentables a los usuarios de manera que puedan percibirlos.
Pregunta 10: ¿Qué técnica es más efectiva para prevenir ataques de inyección SQL?
- A) Almacenar las contraseñas en texto plano
- B) Deshabilitar JavaScript
- C) Limitar el tamaño de las entradas
- D) Usar sentencias preparadas (prepared statements) o consultas parametrizadas
OWASP recomienda el uso de sentencias preparadas con consultas parametrizadas para prevenir la inyección SQL, ya que separan los datos del código.
Pregunta 11: Según el RD 1112/2018, ¿qué nivel de conformidad de las WCAG 2.1 se exige para las webs del sector público?
- A) Nivel A
- B) Nivel AA
- C) Nivel AAA
- D) Nivel A y AA
El RD 1112/2018 exige el cumplimiento del nivel AA de las WCAG 2.1 para las webs del sector público, según se especifica en su artículo 5.
Pregunta 12: ¿Cuál de las siguientes es una heurística de Nielsen relacionada con ayudar a los usuarios a reconocer, diagnosticar y recuperarse de errores?
- A) Reconocimiento antes que recuerdo
- B) Flexibilidad y eficiencia de uso
- C) Ayuda y documentación
- D) Control y libertad del usuario
La heurística "Ayuda y documentación" de Nielsen establece que el sistema debería proporcionar ayuda y documentación para que los usuarios puedan entender y resolver errores.
Pregunta 13: En el contexto de OWASP Top 10, ¿qué significa CSRF?
- A) Cross-Site Scripting Forgery
- B) Client-Side Request Forgery
- C) Cross-Site Remote Forgery
- D) Cross-Site Request Forgery
CSRF significa Cross-Site Request Forgery, un ataque que fuerza al usuario a ejecutar acciones no deseadas en una aplicación web en la que está autenticado.
Pregunta 14: ¿Qué header HTTP se utiliza para proteger contra ataques XSS al indicar al navegador que no ejecute scripts en línea?
- A) Content-Security-Policy
- B) X-Frame-Options
- C) X-XSS-Protection
- D) Strict-Transport-Security
El header Content-Security-Policy (CSP) permite restringir los orígenes desde los que se pueden cargar recursos, ayudando a prevenir ataques XSS.
Pregunta 15: Según WCAG 2.1, ¿cuál de los siguientes es un criterio de éxito para la navegación por teclado (nivel A)?
- A) Todo contenido debe ser operable a través de un teclado
- B) Solo los formularios deben ser accesibles por teclado
- C) No se requiere navegación por teclado
- D) Solo los enlaces deben ser accesibles por teclado
El criterio 2.1.1 de WCAG 2.1 (Teclado) establece que toda la funcionalidad debe ser operable a través de una interfaz de teclado sin requerir tiempos específicos para las pulsaciones.
Pregunta 16: ¿Qué protocolo utiliza HTTPS para cifrar la comunicación?
- A) SSL
- B) TLS
- C) FTP
- D) HTTP/2
HTTPS utiliza TLS (Transport Layer Security) para cifrar la comunicación entre el cliente y el servidor. SSL es su predecesor, pero actualmente se usa TLS.
Pregunta 17: ¿Cuál de los siguientes es un ejemplo de validación de entrada para prevenir ataques?
- A) Aceptar solo caracteres alfanuméricos en un campo de nombre
- B) Mostrar todos los errores de validación al final del formulario
- C) Permitir la subida de cualquier tipo de archivo
- D) No validar entradas para mejorar la experiencia de usuario
La validación de entrada debe restringir los datos a un conjunto esperado, como aceptar solo caracteres alfanuméricos en un campo de nombre, para prevenir inyecciones y otros ataques.
Pregunta 18: En gestión de sesiones, ¿qué práctica ayuda a prevenir el secuestro de sesión?
- A) Usar cookies persistentes
- B) Regenerar el ID de sesión después del login
- C) Almacenar el ID de sesión en la URL
- D) Usar sesiones de duración ilimitada
Regenerar el ID de sesión después del login (session fixation) es una práctica recomendada para prevenir el secuestro de sesión, según OWASP.
Pregunta 19: ¿Qué técnica de pruebas de seguridad ejecuta la aplicación para encontrar vulnerabilidades desde fuera?
- A) SAST
- B) Code review
- C) DAST
- D) Análisis estático
DAST (Dynamic Application Security Testing) prueba la aplicación en ejecución desde el exterior para identificar vulnerabilidades.
Pregunta 20: Según WCAG 2.1, ¿qué proporcionan las técnicas ARIA?
- A) Mejoran el rendimiento de la página
- B) Reemplazan el HTML estándar
- C) Solo son útiles para navegadores antiguos
- D) Añaden semántica y accesibilidad a contenido dinámico
ARIA (Accessible Rich Internet Applications) define atributos para mejorar la accesibilidad de contenido dinámico y componentes ricos de internet, según WCAG.
Pregunta 21: Según el RD 1112/2018, ¿qué debe incluir la declaración de accesibilidad?
- A) Solo el nivel de conformidad alcanzado
- B) Un enlace al formulario de quejas
- C) El nombre del desarrollador
- D) La fecha de creación de la web
El RD 1112/2018 establece que la declaración de accesibilidad debe incluir, entre otros, un mecanismo para presentar quejas y solicitar información accesible.
Pregunta 22: ¿Cuál de las siguientes es una heurística de Nielsen que sugiere que el sistema debe informar al usuario sobre lo que está ocurriendo mediante feedback apropiado?
- A) Visibilidad del estado del sistema
- B) Consistencia y estándares
- C) Prevención de errores
- D) Flexibilidad y eficiencia de uso
La heurística "Visibilidad del estado del sistema" indica que el sistema debe mantener informado al usuario sobre lo que está sucediendo mediante retroalimentación apropiada.
Pregunta 23: En OWASP Top 10, ¿qué categoría se refiere a la exposición de datos sensibles?
- A) Inyección
- B) Autenticación rota
- C) Configuración de seguridad incorrecta
- D) Exposición de datos sensibles
La categoría "Exposición de datos sensibles" en OWASP Top 10 se produce cuando no se protegen adecuadamente datos sensibles como contraseñas, tarjetas de crédito, etc.
Pregunta 24: ¿Qué tipo de ataque XSS almacena el script malicioso en el servidor para ser servido a otros usuarios?
- A) XSS reflejado
- B) XSS basado en DOM
- C) XSS almacenado
- D) XSS mutante
El XSS almacenado (o persistente) ocurre cuando el script malicioso se guarda en el servidor (ej. en una base de datos) y se sirve a otros usuarios.
Pregunta 25: ¿Qué función de PHP es vulnerable a inyección SQL si no se usa correctamente?
- A) htmlspecialchars()
- B) mysqli_real_escape_string()
- C) password_hash()
- D) mysqli_query() sin parametrizar
Usar mysqli_query() con concatenación de cadenas sin parametrizar hace que sea vulnerable a inyección SQL. Se deben usar sentencias preparadas.
Pregunta 26: ¿Qué header HTTP se utiliza para prevenir ataques de clickjacking?
- A) X-Content-Type-Options
- B) Content-Security-Policy
- C) Referrer-Policy
- D) X-Frame-Options
El header X-Frame-Options indica si un navegador debe permitir que una página se represente en un frame, iframe o object, previniendo clickjacking.
Pregunta 27: Según WCAG 2.1, ¿qué criterio de éxito exige que los controles de formulario tengan etiquetas asociadas?
- A) 1.3.1 Información y relaciones
- B) 2.4.6 Encabezados y etiquetas
- C) 4.1.2 Nombre, función, valor
- D) 3.3.2 Etiquetas o instrucciones
El criterio 3.3.2 de WCAG 2.1 requiere que se proporcionen etiquetas o instrucciones cuando el contenido requiera la entrada del usuario.
Pregunta 28: En usabilidad, ¿qué heurística se refiere a que los usuarios no deberían tener que recordar información de una parte del sistema a otra?
- A) Reconocimiento antes que recuerdo
- B) Flexibilidad y eficiencia de uso
- C) Estética y diseño minimalista
- D) Control y libertad del usuario
La heurística "Reconocimiento antes que recuerdo" de Nielsen establece que las opciones deben ser visibles para que el usuario no tenga que recordar información.
Pregunta 29: ¿Qué método es efectivo para prevenir CSRF?
- A) Usar tokens CSRF únicos en formularios
- B) Almacenar datos sensibles en cookies
- C) Deshabilitar cookies
- D) Usar solo GET para acciones importantes
Los tokens CSRF (tokens sincronizados) son un método efectivo para prevenir ataques CSRF, ya que el atacante no puede predecir el token.
Pregunta 30: ¿Qué tipo de prueba de seguridad requiere acceso al código fuente?
- A) DAST
- B) Penetration testing
- C) Fuzzing
- D) SAST
SAST (Static Application Security Testing) analiza el código fuente para encontrar vulnerabilidades, por lo que requiere acceso al código.