Las tres vienen de mezclar entrada no confiable con un contexto de confianza. Detén la inyección SQL con consultas parametrizadas, nunca con concatenación de cadenas. Detén el XSS con codificación de salida según el contexto, evitando inyectar HTML crudo, saneando cualquier HTML que tengas que renderizar y con una Content Security Policy estricta. Detén el CSRF con cookies SameSite más un token por sesión en las peticiones que cambian estado, o con una cabecera personalizada que un formulario de otro sitio no puede fijar.
Por qué lo preguntan los entrevistadores
Estos son los bugs que hacen que un producto sufra una brecha, así que el entrevistador quiere competencia básica más sentido de la defensa en profundidad. Escuchan si nombras el mecanismo en vez de una librería, si sabes que el CSRF solo importa con autenticación basada en cookies, y si tratas validación y codificación como trabajos distintos. Quien dice que sanea toda la entrada normalmente se está saltando la parte del contexto.
Cómo estructurar tu respuesta
- Enmarca las tres como datos no confiables llegando a un contexto de confianza.
- Da la defensa principal de cada una en una línea.
- Añade una segunda capa para al menos una de ellas.
- Menciona dónde ya te protegen los valores por defecto del framework.
Ejemplo de respuesta
Los veo como una sola forma: datos de un usuario acaban en un sitio donde se interpretan. Para SQL, el intérprete es la base de datos, así que las consultas parametrizadas o un constructor de consultas que enlace valores lo resuelven por completo, y no hay motivo aceptable para concatenar una cadena. Para XSS, el intérprete es el navegador, y la clave es que escapar depende del contexto. React escapa los nodos de texto por ti, así que el riesgo se concentra en las vías de escape: inyección de HTML crudo, valores de href que podrían ser una URL javascript, y cualquier cosa escrita directamente en el DOM. Cuando un producto necesita de verdad HTML del usuario, como un campo de texto enriquecido, saneo con una librería de lista de permitidos en el servidor y añado una CSP estricta como segunda capa para que un descuido no sea automáticamente el robo de una cuenta. El CSRF solo aplica cuando el navegador adjunta credenciales de forma automática, así que SameSite en Lax mata casi todo, y aun así añado un token por sesión en cualquier cosa que cambie estado. Las cookies llevan httpOnly y Secure por norma.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Dónde te sigue dejando expuesto SameSite Lax?
- ¿Cuál es la diferencia entre XSS almacenado, reflejado y basado en DOM?
- ¿Cómo desplegarías una Content Security Policy en una aplicación existente?
Más preguntas para Desarrollador full stack
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas