Encuentra el bug en 10 s ⏱️
def agregar(item, lista=[]):
lista.append(item)
return lista
¿Por qué la 2.ª llamada devuelve ['manzana', 'pera']? ¿Línea 1, 2 o 3?
#Python#Programacion
User.create(req.body) guarda todo lo que llega, hasta un campo «rol» que tu formulario nunca pidió.
Arreglo: lista blanca de campos y el rol lo pone el servidor.
¿Tu registro dejaría pasar el rol?
#Ciberseguridad#NodeJS
Tu consulta lee 3 millones de filas para devolver 5 🐢
Filtra por una columna sin índice → Seq Scan: lee la tabla entera.
Un CREATE INDEX → Index Scan, directo a la fila ⚡
¿Ya usaste EXPLAIN?
#SQL#PostgreSQL
Un npm install mal escrito… y tus claves se van 🔑
✅ Nombre exacto y autor
✅ Lockfile + npm ci · --ignore-scripts
✅ npm audit: solo lo ya reportado
¿Revisas el nombre antes de instalar? Sí o no
#npm#Ciberseguridad
¿Qué imprime? 🧠
1) [] + []
2) "5" - 2 y "5" + 2
3) typeof null
Si aciertas las 3, eres senior. Respuestas y el bug real en el video
¿Cuántas acertaste: 0, 1, 2 o 3?
#JavaScript#Programacion
Pedí mi factura… y me descargué el .env del servidor 📂
✅ path.resolve + ¿sigue dentro de la carpeta? Si no, 404
✅ Mejor: por ID y solo si es del usuario
¿Tu app descarga por nombre? Sí o no
#Ciberseguridad#NodeJS
Este video sale a las 7 p. m. del jueves 22. Para tu toISOString() ya es viernes 23 🌙
Arreglo: toLocaleDateString('en-CA', { timeZone: 'America/Lima' })
¿Usas toISOString() para saber qué día es?
#JavaScript#NodeJS
Tus logs saben las contraseñas de tus usuarios 🔓
console.log(req.body) en el login las deja en texto plano.
Arreglo: solo campos necesarios + redact de password y token.
¿Dejaste un console.log «temporal» en producción?
#Ciberseguridad#NodeJS
Quedaba 1 y se vendió 2 veces 🛒
Leer, revisar y descontar falla con 2 compras a la vez.
Arreglo: SET stock = stock - 1 WHERE id = ? AND stock > 0 y revisa affectedRows.
¿Tu código lee y luego descuenta?
#SQL#Backend
¿Despliegas con git pull en la carpeta pública? La .git viaja con tu código y, si el servidor la sirve, regala tu repo 📂
✅ Despliega sin .git (y borra la vieja)
✅ Bloquea rutas ocultas
✅ /.git/HEAD → 404
¿Sí, no o ya no?
#Ciberseguridad#DevOps
Tu página hace 101 consultas para mostrar 100 pedidos 🐢
await dentro del bucle = 1 + N consultas.
Arreglo: include / JOIN → una sola consulta.
¿Tienes un await dentro de un for? Sí / no / no me atrevo a mirar
#SQL#NodeJS
Tu JWT no está cifrado: el payload es base64url y cualquiera lee tu email y tu DNI 👀
✅ Solo lo mínimo en el token
✅ jwt.verify con algorithms fijo, nunca jwt.decode
¿Tu token lleva el email? Sí o no
#JWT#Ciberseguridad
await dentro de forEach no espera: «listo» sale antes de guardar y los errores se escapan del try/catch.
Arreglo: for...of (en orden) o await Promise.all(https://t.co/QRR2EEK6f4(...)) (en paralelo).
¿for…of o Promise.all?
https://t.co/FDdCIwzN4s
#JavaScript#NodeJS
rm -rf "$DIR/"* + variable vacía en el cron = borrar desde la raíz. Y --preserve-root no ayuda: el * ya se expandió.
Arreglo: set -euo pipefail, ${DIR:?} y validar la ruta.
⚠️ No lo pruebes en tu máquina.
https://t.co/HsQbMSCdhb
#Bash#Linux
0.10 + 0.20 en JavaScript = 0.30000000000000004.
Si cobras con float, la caja no cuadra.
Arreglo: céntimos enteros y formatear en soles solo al mostrar.
¿float, decimal o céntimos?
https://t.co/Ww8iSyFQsT
#JavaScript#Backend
Tu API key en el frontend (o en VITE_/NEXT_PUBLIC_) va dentro del bundle: se ve en la pestaña Red.
Arreglo: el frontend llama a tu backend y solo el servidor usa process.env.
¿Tu frontend tiene alguna clave?
https://t.co/AVo68pkKG4
#Ciberseguridad#React
DELETE FROM clientes; → 0 clientes.
Red de seguridad: BEGIN, revisa filas afectadas, ROLLBACK o COMMIT. Y --safe-updates + backups ya probados.
¿Te ha pasado? Sí o todavía no
https://t.co/V8gjyxZgvc
#SQL#MySQL
Cambié un número en la URL y vi el pedido de otra persona.
El endpoint buscaba solo por id. Arreglo: WHERE id = ? AND user_id = ? y 404 si no es suyo.
¿Tu API revisa el dueño o solo el login?
https://t.co/OYlAM8uK8I
#Ciberseguridad#APIRest
«Buscamos practicante con 2 años de experiencia» 🤔
El bucle se rompe demostrando, no contando años. Por eso construyo WorkArena (en desarrollo): retos tipo torneo para elegir practicantes.
https://t.co/ukgPYYbs3d
#practicas#programacion
Ya no escribo mi propio login 🔐
Hash, recuperación, 2FA, sesiones, rotación de llaves, «entrar con Google», auditoría… Todo eso cabe en un proveedor de identidad con OIDC.
https://t.co/ZzS6MOUjgU
#ciberseguridad#OIDC