Modo práctica

Desafíos de revisión de código

Los desarrolladores revisan código vulnerable real, identifican el fallo de seguridad y seleccionan la corrección correcta entre varias opciones. Un flujo en dos fases que desarrolla tanto la detección como la remediación.

Dos fases. Un desafío.

01
Detección

Encuentre el bloque vulnerable

Se muestra al desarrollador un fragmento de código del mundo real con una o varias líneas vulnerables. Hace clic en el bloque que considera que contiene el fallo de seguridad. Sin opciones múltiples — tiene que leer el código y razonar sobre qué está mal.

  • Patrones de código realistas de producción
  • Selección con clic sobre la línea de código real
  • Se permiten varios intentos
02
Remediación

Elija la corrección correcta

Una vez identificado el bloque vulnerable, el desarrollador elige la corrección adecuada entre un conjunto de alternativas plausibles. Las opciones distractoras incluyen correcciones habituales pero erróneas — del tipo que pasan la revisión de código y dejan el bug en producción.

  • Selección de la corrección por opción múltiple
  • Distractores plausiblemente incorrectos
  • Explicación revelada tras la respuesta

Un desafío, en pleno flujo.

auth-controller.js
1const express = require('express')
2const db = require('./db')
3 
4const q = `SELECT * FROM users WHERE email = '${email}'`
5const rows = await db.execute(q)
6return rows[0]
Fase 1 — Encuentre la vulnerabilidad

Ajustado para aprender, no para excluir.

Pistas sin penalización

Los desarrolladores pueden pedir una pista en cualquier momento. Las pistas no reducen la puntuación final — el objetivo es la comprensión, no el castigo.

Puntuación basada en intentos

La puntuación se calcula a partir del número de intentos realizados en cada fase. Menos intentos = mayor puntuación. Acertar a la primera en ambas fases obtiene la puntuación máxima.

Explicación después de cada respuesta

Una vez seleccionada la corrección — acertada o no — la plataforma muestra por qué cada opción es segura o insegura. Los distractores no se marcan simplemente como incorrectos; se explica el modo de fallo.

Leer código vulnerable es el trabajo real.

La mayor parte de la formación en seguridad para desarrolladores pide a los ingenieros que vean un vídeo sobre inyección SQL y respondan un cuestionario de opción múltiple. Los desafíos de revisión de código invierten esa lógica: ponen al desarrollador delante del código primero y le obligan al mismo tipo de razonamiento que exige una revisión de código. La detección y la corrección se puntúan por separado porque, en revisiones reales, saber que algo está mal y saber cómo arreglarlo son dos habilidades distintas — y un ingeniero puede ser fuerte en una sin serlo en la otra.

Pruebe un desafío usted mismo.

La demo interactiva ejecuta tres desafíos completos de revisión de código para que pueda ver el flujo en dos fases de principio a fin antes de hablar con nuestro equipo.