{"id":86998,"date":"2026-05-19T12:36:47","date_gmt":"2026-05-19T17:36:47","guid":{"rendered":"https:\/\/niixer.com\/?p=86998"},"modified":"2026-05-19T19:29:01","modified_gmt":"2026-05-20T00:29:01","slug":"vibe-coding-con-ia","status":"publish","type":"post","link":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/","title":{"rendered":"Vibe Coding con inteligencia artificial: crea una app con Google AI Studio y auditala con OWASP TOP 10"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">01 <strong>\u00bfC\u00f3mo funciona el Vibe Coding?<\/strong>\u2014 La metodolog\u00eda para construir software con IA sin programar<\/h2>\n\n\n\n<p>El <a href=\"https:\/\/niixer.com\/index.php\/2026\/04\/13\/vibe-coding-pagina-web-gratis-con-google-ai-studio-sin-saber-programar\/\"><strong>Vibe Coding con IA<\/strong> <\/a>es una forma de crear software donde t\u00fa describes lo que quieres en lenguaje natural y la IA genera el c\u00f3digo por ti. No reemplaza el pensamiento l\u00f3gico ni la capacidad de tomar decisiones, pero s\u00ed elimina la barrera de tener que dominar un lenguaje de programaci\u00f3n para materializar una idea.<\/p>\n\n\n\n<p>El t\u00e9rmino lo propuso <strong>Andrej Karpathy<\/strong> \u2014cofundador de OpenAI y ex director de IA en Tesla\u2014 en febrero de 2025. Se populariz\u00f3 tan r\u00e1pido que ese mismo mes fue incorporado al Diccionario Merriam-Webster.<\/p>\n\n\n\n<p>&#8220;Una t\u00e9cnica donde el programador describe el problema en pocas oraciones, la IA genera el software, y el rol humano pasa de escribir c\u00f3digo a guiar, probar y refinar lo que el modelo produce.&#8221;Wikipedia, 2025 \u2014 basado en la definici\u00f3n de Karpathy<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfPor qu\u00e9 funciona?<\/h3>\n\n\n\n<p>La clave est\u00e1 en que los modelos de lenguaje grandes (LLMs) actuales fueron entrenados con enormes cantidades de c\u00f3digo real. Cuando les describes una funci\u00f3n, un m\u00f3dulo o una arquitectura completa, el modelo puede generar c\u00f3digo funcional porque &#8220;ha visto&#8221; patrones similares millones de veces. No inventa: reconoce patrones y los adapta a tu descripci\u00f3n.<\/p>\n\n\n\n<p>Pero hay una condici\u00f3n: <strong>la calidad del resultado depende directamente de la calidad de lo que describes<\/strong>. Un prompt vago produce c\u00f3digo vago. Un prompt preciso, con restricciones claras y formato de salida definido, produce c\u00f3digo estructurado y coherente.<\/p>\n\n\n\n<p><strong>Lo m\u00e1s importante:<\/strong> el <strong>Vibe Coding con inteligencia artificial<\/strong> no es &#8220;pedirle a la IA que haga todo&#8221;. Es saber qu\u00e9 quieres construir, dividirlo en partes, describir cada parte con precisi\u00f3n y revisar cr\u00edticamente lo que te devuelve. La IA genera; t\u00fa diriges.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La herramienta: Google AI Studio<\/h3>\n\n\n\n<p><a href=\"https:\/\/aistudio.google.com\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Google AI Studio<\/strong><\/a> es la plataforma gratuita de Google para usar los modelos Gemini directamente desde el navegador. No necesitas instalar nada ni tener tarjeta de cr\u00e9dito, solo una cuenta de Google.<\/p>\n\n\n\n<p>Para Vibe Coding tiene ventajas claras:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ventana de contexto de hasta un mill\u00f3n de tokens:<\/strong> puedes mantener todo el contexto de un proyecto complejo en una sola sesi\u00f3n sin que el modelo &#8220;olvide&#8221; lo anterior.<\/li>\n\n\n\n<li><strong>Multimodal:<\/strong> puedes pasarle im\u00e1genes, PDFs o capturas de pantalla junto con tus prompts. Si tienes un dise\u00f1o en papel o un diagrama, puedes subirlo y la IA lo considera.<\/li>\n\n\n\n<li><strong>System Prompt:<\/strong> puedes definir instrucciones base que se aplican a toda la sesi\u00f3n, lo que da coherencia al c\u00f3digo generado en m\u00faltiples iteraciones.<\/li>\n\n\n\n<li><strong>Gratuito:<\/strong> acceso sin costo en todas las regiones disponibles, ideal para proyectos acad\u00e9micos y prototipos (Google Cloud, 2026).<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo estructurar un buen prompt para Vibe Coding con IA<\/h2>\n\n\n\n<p>Esta es la parte que m\u00e1s impacta en el resultado. Un prompt de <strong>Vibe Coding con inteligencia artificial<\/strong> bien construido tiene cinco elementos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Rol:<\/strong> qu\u00e9 tipo de experto debe ser la IA en esta respuesta. <em>&#8220;Act\u00faa como un Backend Engineer Senior con experiencia en Node.js y APIs REST.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Contexto:<\/strong> qu\u00e9 est\u00e1s construyendo y para qu\u00e9. Cuanto m\u00e1s espec\u00edfico, mejor.<\/li>\n\n\n\n<li><strong>Objetivo:<\/strong> qu\u00e9 resultado concreto esperas de este prompt. No &#8220;ay\u00fadame con el backend&#8221; sino &#8220;dise\u00f1a los endpoints REST del m\u00f3dulo de autenticaci\u00f3n con JWT y roles admin\/editor&#8221;.<\/li>\n\n\n\n<li><strong>Restricciones:<\/strong> lo que NO debe incluir. Esto es igual de importante que el objetivo. <em>&#8220;No uses Redis, no uses microservicios, no uses GraphQL.&#8221;<\/em><\/li>\n\n\n\n<li><strong>Formato de salida:<\/strong> c\u00f3mo quieres que entregue el resultado. \u00c1rbol de carpetas, tabla de endpoints, schema de Prisma, etc.<\/li>\n<\/ol>\n\n\n\n<p><strong>Error com\u00fan:<\/strong> describir todo en un solo prompt gigante esperando que la IA genere la aplicaci\u00f3n completa de una vez. Funciona mejor dividir el proyecto en m\u00f3dulos y trabajar cada uno por separado, iterando hasta que quede bien antes de pasar al siguiente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El ciclo de trabajo real para el Vibe Coding con IA<\/h2>\n\n\n\n<p>1 <strong>Define la idea con claridad antes de abrir AI Studio<\/strong><\/p>\n\n\n\n<p>\u00bfQu\u00e9 problema resuelve la app? \u00bfQui\u00e9n la usa? \u00bfQu\u00e9 hace en cada pantalla? Sin esta base, los prompts ser\u00e1n vagos y el c\u00f3digo tambi\u00e9n. Escribe un resumen de media p\u00e1gina antes de empezar.<\/p>\n\n\n\n<p>2 <strong>Configura el System Prompt en Google AI Studio<\/strong><\/p>\n\n\n\n<p>Entra a <a href=\"https:\/\/aistudio.google.com\" target=\"_blank\" rel=\"noreferrer noopener\">aistudio.google.com<\/a>, selecciona Gemini y activa el System Prompt. Ah\u00ed define el contexto global del proyecto y las restricciones tecnol\u00f3gicas que aplican a toda la sesi\u00f3n.<\/p>\n\n\n\n<p>3 <strong>Empieza por la arquitectura, no por el c\u00f3digo<\/strong><\/p>\n\n\n\n<p>El primer <a href=\"https:\/\/niixer.com\/index.php\/2026\/04\/13\/vibe-coding-la-revolucion-de-crear-apps-sin-codigo-caso-practico-de-inventario\/\">prompt <\/a>debe pedir la estructura general: carpetas, m\u00f3dulos, decisiones de stack, flujo de datos. Si la arquitectura est\u00e1 bien, el c\u00f3digo que venga despu\u00e9s encaja solo. Si est\u00e1 mal, cada m\u00f3dulo va a tener problemas.<\/p>\n\n\n\n<p>4 <strong>Genera m\u00f3dulo por m\u00f3dulo y prueba cada uno<\/strong><\/p>\n\n\n\n<p>Base de datos, autenticaci\u00f3n, APIs, frontend \u2014 cada uno en su propio prompt y su propio ciclo de revisi\u00f3n. Prueba que funcione antes de pasar al siguiente. Un error acumulado en el m\u00f3dulo de base de datos contamina todo lo que viene despu\u00e9s.<\/p>\n\n\n\n<p>5 <strong>Cuando algo falla, describe el error con precisi\u00f3n<\/strong><\/p>\n\n\n\n<p>No digas &#8220;no funciona&#8221;. Di exactamente qu\u00e9 falla, en qu\u00e9 endpoint, con qu\u00e9 datos de prueba y qu\u00e9 devuelve. Cuanto m\u00e1s espec\u00edfico es el error que le describes a la IA, m\u00e1s precisa es la correcci\u00f3n que genera.<\/p>\n\n\n\n<p>6 <strong>Integra los m\u00f3dulos y despliega<\/strong><\/p>\n\n\n\n<p>Cuando cada parte funciona por separado, int\u00e9gralas. Para desplegar en Render: crea un Web Service, conecta el repositorio, define el build command y el start command, agrega la base de datos <a href=\"https:\/\/www.postgresql.org\/\">PostgreSQL <\/a>y configura las variables de entorno. En menos de 15 minutos est\u00e1 en producci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">02 <strong>El proyecto que construimos<\/strong>\u2014 Una plataforma SaaS de redes sociales generada con IA<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 construimos y c\u00f3mo qued\u00f3<\/h3>\n\n\n\n<p>Para aplicar el <strong>Vibe Coding con inteligencia artificial<\/strong> en un caso real, construimos una plataforma de gesti\u00f3n de redes sociales para concesionarios de motos. Incluye calendario de contenido con drag and drop, generador de copies e ideas con IA, dashboard de m\u00e9tricas y gesti\u00f3n de campa\u00f1as publicitarias para Instagram, TikTok, YouTube, Facebook y X\/Twitter.<\/p>\n\n\n\n<p>Puedes verla aqu\u00ed: <a href=\"https:\/\/calendario-redes-sociales.onrender.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>calendario-redes-sociales.onrender.com<\/strong><\/a><br>C\u00f3digo fuente: <a href=\"https:\/\/github.com\/FernandoMartinez018\/calendario-redes-sociales-hacking-etico\" target=\"_blank\" rel=\"noreferrer noopener\">github.com\/FernandoMartinez018\/calendario-redes-sociales-hacking-etico<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El stack que definimos desde el primer prompt<\/h3>\n\n\n\n<p>La restricci\u00f3n m\u00e1s importante fue la simplicidad: un solo proyecto, un solo <a href=\"https:\/\/niixer.com\/?s=servidor\">servidor<\/a>, sin microservicios ni Redis ni colas. Todo en un monolito desplegable en Render.<\/p>\n\n\n\n<p>Frontend<\/p>\n\n\n\n<p>React 19 + Vite + TailwindCSS + shadcn\/ui<\/p>\n\n\n\n<p>Backend<\/p>\n\n\n\n<p>Node.js 20 + Express 4 + TypeScript<\/p>\n\n\n\n<p>Base de datos<\/p>\n\n\n\n<p>PostgreSQL + Prisma ORM<\/p>\n\n\n\n<p>Inteligencia artificial<\/p>\n\n\n\n<p>OpenAI API<\/p>\n\n\n\n<p>Multimedia<\/p>\n\n\n\n<p>Cloudinary<\/p>\n\n\n\n<p>Autenticaci\u00f3n<\/p>\n\n\n\n<p>JWT + bcrypt + roles<\/p>\n\n\n\n<p>Automatizaci\u00f3n<\/p>\n\n\n\n<p>node-cron<\/p>\n\n\n\n<p>Deploy<\/p>\n\n\n\n<p>Render (1 Web Service)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Los cinco prompts maestros que usamos<\/strong><\/h3>\n\n\n\n<p>En lugar de un prompt gigante, dividimos el proyecto en cinco prompts especializados. Cada uno gener\u00f3 una <a href=\"https:\/\/dle.rae.es\/capa\">capa <\/a>completa del sistema. As\u00ed funciona el <strong>Vibe Coding con IA<\/strong> cuando se estructura bien: m\u00f3dulo a m\u00f3dulo, con precisi\u00f3n.<\/p>\n\n\n\n<p>Prompt #1 \u00b7 Arquitectura general<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Prompt #1 \u2014 Arquitectura General Monol\u00edtica (Node.js + PostgreSQL + Render)<br>ROL<br><br>Act\u00faa como un Software Architect Senior con 15 a\u00f1os de experiencia construyendo aplicaciones SaaS monol\u00edticas modernas con Node.js, PostgreSQL y despliegues simplificados en Render. Especialista en arquitecturas fullstack simples, mantenibles y optimizadas para desarrollo r\u00e1pido mediante vibe coding y AI-assisted development.<br><br>CONTEXTO<br><br>Estoy construyendo una plataforma SaaS de gesti\u00f3n de redes sociales enfocada en concesionarios y venta de motos.<br><br>La aplicaci\u00f3n debe permitir:<br><br>Gesti\u00f3n de calendario de contenido para:<br>Instagram<br>TikTok<br>YouTube<br>Facebook<br>X\/Twitter<br>Creaci\u00f3n y programaci\u00f3n de:<br>reels<br>historias<br>posts<br>shorts<br>campa\u00f1as ads<br>Generaci\u00f3n autom\u00e1tica de:<br>copies<br>hashtags<br>t\u00edtulos<br>captions<br>prompts creativos<br>ideas de campa\u00f1as<br>Generaci\u00f3n autom\u00e1tica de 20 publicaciones mensuales.<br>Dashboard de m\u00e9tricas:<br>likes<br>engagement<br>reposts<br>shares<br>followers<br>alcance<br>CTR<br>Gesti\u00f3n de campa\u00f1as:<br>Meta Ads<br>TikTok Ads<br>Google Ads<br>IA interna que:<br>recopila prompts,<br>genera copies,<br>genera ideas visuales,<br>recomienda horarios.<br><br>La aplicaci\u00f3n debe ser SIMPLE.<br><br>NO quiero:<br><br>microservicios,<br>colas,<br>Redis,<br>Kafka,<br>arquitectura distribuida,<br>complejidad innecesaria.<br><br>TODO debe vivir:<br><br>en un \u00fanico proyecto Node.js,<br>con frontend y backend juntos,<br>usando PostgreSQL,<br>desplegable f\u00e1cilmente en Render.<br>OBJETIVO<br><br>Dise\u00f1ar una arquitectura fullstack monol\u00edtica simple, moderna y escalable moderadamente, optimizada para:<br><br>velocidad de desarrollo,<br>mantenimiento sencillo,<br>bajo costo,<br>despliegue simple,<br>y desarrollo mediante vibe coding.<br>REQUERIMIENTOS DE ENTRADA<br><br>La aplicaci\u00f3n debe incluir:<br><br>M\u00f3dulos principales<br>Autenticaci\u00f3n<br>Dashboard<br>Calendario Social<br>Generador IA<br>Gesti\u00f3n de publicaciones<br>Gesti\u00f3n de campa\u00f1as Ads<br>Analytics<br>Configuraci\u00f3n<br>Biblioteca multimedia<br>Gesti\u00f3n de prompts IA<br>Funcionalidades<br>Programaci\u00f3n de publicaciones<br>Generaci\u00f3n autom\u00e1tica de copies<br>Generaci\u00f3n de hashtags<br>Recomendaci\u00f3n de horarios<br>Dashboard de m\u00e9tricas<br>Subida de im\u00e1genes\/videos<br>Calendario drag and drop<br>Generaci\u00f3n autom\u00e1tica de contenido mensual<br>RESTRICCIONES (NO NEGOCIABLES)<br>NO usar microservicios.<br>NO usar Redis.<br>NO usar colas\/event brokers.<br>NO usar Docker obligatorio.<br>NO usar Kubernetes.<br>NO usar arquitectura hexagonal compleja.<br>NO usar CQRS.<br>NO usar GraphQL.<br>NO usar m\u00faltiples repositorios.<br>Debe ser un \u00fanico proyecto fullstack.<br>Debe poder desplegarse en Render con:<br>un \u00fanico Web Service<br>una base PostgreSQL<br>Debe ser entendible para un desarrollador mid-level.<br>Debe priorizar simplicidad sobre hiper-escalabilidad.<br>STACK FORZADO<br>Frontend<br>React 19<br>TypeScript<br>Vite<br>TailwindCSS<br>shadcn\/ui<br>Backend<br>Node.js 20<br>Express 4<br>TypeScript<br>Base de datos<br>PostgreSQL<br>ORM<br>Prisma ORM<br>IA<br>OpenAI API<br>Deploy<br>Render<br>Charts<br>Recharts<br>Auth<br>JWT simple con bcrypt<br>Uploads<br>Cloudinary<br>FORMATO DE SALIDA (estricto)<br>1. Arquitectura General<br><br>Explicar:<br><br>por qu\u00e9 un monolito es correcto,<br>c\u00f3mo convivir\u00e1n frontend y backend,<br>flujo de datos,<br>estructura simple del proyecto.<br>2. Diagrama de capas ASCII<br><br>Mostrar:<br><br>Browser<br>\u2193<br>React Frontend<br>\u2193<br>Express API<br>\u2193<br>Services<br>\u2193<br>Prisma ORM<br>\u2193<br>PostgreSQL<br><br>Y conexiones externas:<br><br>OpenAI<br>Cloudinary<br>APIs sociales<br>3. Estructura de carpetas completa<br><br>Generar \u00e1rbol completo:<br><br>frontend<br>backend<br>shared<br>prisma<br>uploads<br>scripts<br><br>Con explicaci\u00f3n carpeta por carpeta.<br><br>4. M\u00f3dulos del sistema<br><br>Tabla:<br><br>| M\u00f3dulo | Responsabilidad | Tablas | APIs externas |<br><br>5. Modelo de autenticaci\u00f3n<br><br>Explicar:<br><br>JWT<br>refresh token<br>bcrypt<br>middleware auth<br>roles:<br>admin<br>editor<br>6. Arquitectura del calendario social<br><br>Explicar:<br><br>drag and drop<br>programaci\u00f3n<br>estados:<br>draft<br>scheduled<br>published<br>failed<br><br>Modelo de publicaci\u00f3n.<br><br>7. Arquitectura IA<br><br>Explicar:<br><br>generaci\u00f3n de copies<br>prompts<br>recomendaciones<br>generaci\u00f3n de hashtags<br>reutilizaci\u00f3n de prompts<br>historial IA<br>8. Dashboard y analytics<br><br>Explicar:<br><br>m\u00e9tricas<br>KPIs<br>gr\u00e1ficos<br>agregaciones SQL<br>rendimiento sin Redis<br>9. Estrategia de despliegue en Render<br><br>Explicar:<br><br>build command<br>start command<br>variables de entorno<br>PostgreSQL<br>almacenamiento multimedia<br>10. Trade-offs arquitect\u00f3nicos<br><br>M\u00ednimo 10 trade-offs.<br><br>Ejemplo:<br><br>Decisi\u00f3n<br><br>Monolito Node.js<br><br>Ventaja<br><br>Desarrollo r\u00e1pido.<br><br>Desventaja<br><br>Escalabilidad horizontal limitada.<br><br>11. Roadmap t\u00e9cnico<br><br>Fase 1:<br><br>MVP<br><br>Fase 2:<br><br>IA avanzada<br><br>Fase 3:<br><br>automatizaciones<br>CRITERIOS DE ACEPTACI\u00d3N<br><br>La respuesta solo es v\u00e1lida si:<br><br>NO usa microservicios.<br>NO usa Redis.<br>TODO cabe en Render.<br>Frontend y backend viven juntos.<br>Prisma es el \u00fanico ORM.<br>PostgreSQL es la \u00fanica base de datos.<br>Existe una arquitectura clara para:<br>calendario,<br>IA,<br>m\u00e9tricas,<br>publicaciones,<br>campa\u00f1as ads.<br>Todo est\u00e1 optimizado para simplicidad.<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">03 <strong>Pruebas de seguridad: OWASP Top 10<\/strong><\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 hacerle pruebas de seguridad al c\u00f3digo generado por IA<\/h2>\n\n\n\n<p>Seg\u00fan daily.dev (2026), <strong>hasta el 45% del c\u00f3digo generado por IA contiene vulnerabilidades de seguridad<\/strong> que no son evidentes a simple vista. La IA incorpora los <a href=\"https:\/\/es.wikipedia.org\/wiki\/Patr%C3%B3n_(estructura)\">patrones <\/a>que conoce, pero no siempre aplica las mejores pr\u00e1cticas de seguridad a menos que los prompts las especifiquen expl\u00edcitamente. Por eso, despu\u00e9s de construir con <strong>Vibe Coding con<\/strong> <strong>IA<\/strong>, la siguiente pregunta obligatoria es: <em>\u00bfqu\u00e9 tan seguro qued\u00f3?<\/em><\/p>\n\n\n\n<p>El marco que usamos para responderla fue el <strong>OWASP Top 10 \u2013 2021<\/strong>: las diez categor\u00edas de vulnerabilidades m\u00e1s cr\u00edticas en aplicaciones web, definidas por la Open Web Application Security Project. Es el est\u00e1ndar de referencia en<a href=\"https:\/\/niixer.com\/index.php\/2026\/05\/05\/que-tan-segura-es-tu-web-una-travesia-de-hacking-etico-por-pokemon-wuaze-com\/\"> hacking \u00e9tico<\/a> y auditor\u00eda de aplicaciones web.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Las herramientas del pen testing<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OWASP ZAP:<\/strong> herramienta gratuita de an\u00e1lisis autom\u00e1tico de vulnerabilidades. Lanza payloads sobre todos los endpoints y formularios detectados y reporta lo que encuentra.<\/li>\n\n\n\n<li><strong>curl desde PowerShell:<\/strong> para pruebas manuales de conectividad y an\u00e1lisis de headers HTTP.<\/li>\n\n\n\n<li><strong>DevTools del navegador:<\/strong> inspecci\u00f3n de tr\u00e1fico, respuestas del servidor y comportamiento de la app en tiempo real.<\/li>\n\n\n\n<li><strong>An\u00e1lisis manual:<\/strong> algunos <a href=\"https:\/\/dle.rae.es\/test\">tests <\/a>no se pueden automatizar. El comportamiento del login ante intentos fallidos, por ejemplo, requiere prueba directa.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Las 10 categor\u00edas y c\u00f3mo testear cada una<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>C\u00f3digo<\/th><th>Categor\u00eda<\/th><th>Qu\u00e9 se busca<\/th><th>Herramienta<\/th><\/tr><\/thead><tbody><tr><td>A01<\/td><td>Broken Access Control<\/td><td>Acceso a recursos sin permisos<\/td><td>Manual \/ ZAP<\/td><\/tr><tr><td>A02<\/td><td>Cryptographic Failures<\/td><td>Tr\u00e1fico sin cifrar, datos expuestos<\/td><td>curl \/ ZAP<\/td><\/tr><tr><td>A03<\/td><td>Injection<\/td><td>SQL Injection, XSS, Command Injection<\/td><td>ZAP Active Scan<\/td><\/tr><tr><td>A04<\/td><td>Insecure Design<\/td><td>Fallas de dise\u00f1o como fuerza bruta posible<\/td><td>Manual<\/td><\/tr><tr><td>A05<\/td><td>Security Misconfiguration<\/td><td>Headers HTTP de seguridad ausentes<\/td><td>ZAP \/ curl<\/td><\/tr><tr><td>A06<\/td><td>Vulnerable Components<\/td><td>Stack expuesto, versiones con CVEs<\/td><td>ZAP \/ DevTools<\/td><\/tr><tr><td>A07<\/td><td>Authentication Failures<\/td><td>XSS en login, sesiones d\u00e9biles<\/td><td>Manual \/ ZAP<\/td><\/tr><tr><td>A08<\/td><td>Integrity Failures<\/td><td>Recursos sin SRI, dependencias inseguras<\/td><td>DevTools \/ ZAP<\/td><\/tr><tr><td>A09<\/td><td>Logging Failures<\/td><td>Errores que exponen info interna<\/td><td>Manual \/ ZAP<\/td><\/tr><tr><td>A10<\/td><td>Server-Side Request Forgery<\/td><td>Par\u00e1metros que aceptan URLs arbitrarias<\/td><td>Manual \/ ZAP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Resultados: qu\u00e9 encontramos en nuestra app<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">A01 \u00b7 Broken Access Control<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Sin vulnerabilidad<\/h4>\n\n\n\n<p>Intentamos acceder directamente al endpoint <code>\/wp-json\/wp\/v2\/users<\/code> para enumerar usuarios. Render bloque\u00f3 el acceso correctamente. La app no est\u00e1 sobre WordPress, y los controles de acceso del servidor funcionan.Herramienta: navegador \u00b7 acceso manual<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"533\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248-1024x533.png\" alt=\"\" class=\"wp-image-87194\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248-1024x533.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248-300x156.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248-768x399.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248-1536x799.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-248.png 1911w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A02 \u00b7 Cryptographic Failures<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">HTTPS correcto<\/h4>\n\n\n\n<p>El sitio usa TLS 1.3 y redirige autom\u00e1ticamente desde HTTP. No encontramos datos sensibles en texto plano en ninguna respuesta.Herramienta: curl (PowerShell)<\/p>\n\n\n\n<p># Test b\u00e1sico de cifrado<br>curl -v http:\/\/calendario-redes-sociales.onrender.com\/<br>\u2192 301 Moved Permanently \u2192 redirige a HTTPS \u2713<\/p>\n\n\n\n<p>curl -v https:\/\/calendario-redes-sociales.onrender.com\/<br>\u2192 200 OK \u00b7 TLS 1.3 \u00b7 Certificado v\u00e1lido \u2713<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"368\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249-1024x368.png\" alt=\"\" class=\"wp-image-87195\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249-1024x368.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249-300x108.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249-768x276.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249-1536x553.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-249.png 1898w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A03 \u00b7 Injection<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Riesgo bajo \u2014 Prisma ORM mitiga SQL Injection<\/h4>\n\n\n\n<p>OWASP ZAP lanz\u00f3 payloads de SQL Injection, XSS y Command Injection sobre todos los formularios. Prisma ORM parametriza autom\u00e1ticamente todas las consultas, eliminando el riesgo de SQL Injection cl\u00e1sico. ZAP detect\u00f3 que algunos mensajes de error devolv\u00edan m\u00e1s informaci\u00f3n del sistema de lo recomendable.Herramienta: OWASP ZAP \u00b7 Active Scan<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"524\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250-1024x524.png\" alt=\"\" class=\"wp-image-87197\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250-1024x524.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250-300x153.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250-768x393.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250-1536x785.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-250.png 1913w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A04 \u00b7 Insecure Design<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Vulnerabilidad encontrada El login no bloquea intentos fallidos<\/h4>\n\n\n\n<p>Probamos el formulario de login con m\u00faltiples credenciales incorrectas seguidas. La app no bloque\u00f3 al usuario, no mostr\u00f3 CAPTCHA y no agreg\u00f3 ninguna demora. Esto permite automatizar un ataque de fuerza bruta sin fricci\u00f3n:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sin l\u00edmite de intentos por IP o por cuenta<\/li>\n\n\n\n<li>Sin timeout entre intentos fallidos<\/li>\n\n\n\n<li>Sin notificaci\u00f3n al usuario sobre actividad sospechosa<\/li>\n<\/ul>\n\n\n\n<p>Herramienta: an\u00e1lisis manual \u00b7 navegador<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251-1024x528.png\" alt=\"\" class=\"wp-image-87198\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251-1024x528.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251-300x155.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251-768x396.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251-1536x792.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-251.png 1910w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A05 \u00b7 Security Misconfiguration<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Headers de seguridad incompletos<\/h4>\n\n\n\n<p>OWASP ZAP detect\u00f3 ausencia de headers HTTP cr\u00edticos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Content-Security-Policy:<\/strong> no presente \u2192 facilita XSS al permitir cargar recursos externos sin restricci\u00f3n.<\/li>\n\n\n\n<li><strong>X-Frame-Options:<\/strong> ausente \u2192 la app puede embeberse en un iframe para clickjacking.<\/li>\n\n\n\n<li><strong>Referrer-Policy y Permissions-Policy:<\/strong> no configurados.<\/li>\n<\/ul>\n\n\n\n<p>Solo el header <code>Strict-Transport-Security (HSTS)<\/code> estaba activo, activado autom\u00e1ticamente por Render.Herramienta: OWASP ZAP \u00b7 revisi\u00f3n de headers HTTP<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"523\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252-1024x523.png\" alt=\"\" class=\"wp-image-87199\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252-1024x523.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252-300x153.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252-768x393.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252-1536x785.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-252.png 1915w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A06 \u00b7 Vulnerable Components<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Expone el stack tecnol\u00f3gico<\/h4>\n\n\n\n<p>El header <code>X-Powered-By<\/code> y algunos mensajes de error revelaban el framework y versiones usadas. Esto le da a un atacante informaci\u00f3n para buscar CVEs espec\u00edficos de esas versiones. No encontramos dependencias con CVEs cr\u00edticos activos al momento de la prueba.Herramienta: OWASP ZAP \u00b7 DevTools<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"340\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254-1024x340.png\" alt=\"\" class=\"wp-image-87201\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254-1024x340.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254-300x100.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254-768x255.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254-1536x510.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-254.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A07 \u00b7 Authentication Failures<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">XSS en campos de entrada<\/h4>\n\n\n\n<p>Insertamos payloads de Cross-Site Scripting manualmente en campos de formulario. Algunos reflejaban el script en la respuesta sin sanitizar. Payloads probados: <code>&lt;script&gt;alert('XSS')&lt;\/script&gt;<\/code> y variantes con URL encoding y Base64.Herramienta: pruebas manuales \u00b7 OWASP ZAP<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"526\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253-1024x526.png\" alt=\"\" class=\"wp-image-87200\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253-1024x526.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253-300x154.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253-768x394.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253-1536x789.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-253.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A08 \u00b7 Integrity Failures<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Sin Subresource Integrity en recursos externos<\/h4>\n\n\n\n<p>No encontramos uso de SRI para scripts y estilos cargados desde CDNs externos. Sin CVEs cr\u00edticos activos en las dependencias al momento de la prueba.Herramienta: DevTools \u00b7 OWASP ZAP<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A09 \u00b7 Logging Failures<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Errores inconsistentes: algunos exponen info interna<\/h4>\n\n\n\n<p>Enviamos formularios con datos inv\u00e1lidos y payloads de inyecci\u00f3n. En algunos casos la app respond\u00eda limpiamente; en otros devolvi\u00f3 trazas de error con detalles del sistema visibles en la respuesta HTTP. El manejo de excepciones no es uniforme en toda la aplicaci\u00f3n.Herramienta: pruebas manuales \u00b7 OWASP ZAP<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"528\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255-1024x528.png\" alt=\"\" class=\"wp-image-87202\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255-1024x528.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255-300x155.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255-768x396.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255-1536x792.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-255.png 1910w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">A10 \u00b7 Server-Side Request Forgery<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Sin evidencia de SSRF<\/h4>\n\n\n\n<p>No encontramos par\u00e1metros que aceptaran URLs arbitrarias ni funcionalidades que hicieran peticiones servidor-a-servidor configurables por el usuario. El stack monol\u00edtico reduce considerablemente esta superficie de ataque.Herramienta: DevTools \u00b7 OWASP ZAP \u00b7 an\u00e1lisis manual<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"516\" src=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256-1024x516.png\" alt=\"\" class=\"wp-image-87203\" srcset=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256-1024x516.png 1024w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256-300x151.png 300w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256-768x387.png 768w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256-1536x774.png 1536w, https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/image-256.png 1915w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen de hallazgos<\/h3>\n\n\n\n<p>3Vulnerabilidades cr\u00edticas<\/p>\n\n\n\n<p>3Riesgo medio<\/p>\n\n\n\n<p>4Sin vulnerabilidad activa<\/p>\n\n\n\n<p>10Categor\u00edas OWASP evaluadas<\/p>\n\n\n\n<p>Herramientas utilizadas: OWASP ZAP \u00b7 curl \u00b7 DevTools \u00b7 an\u00e1lisis manual<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Lo que aprendimos<\/h2>\n\n\n\n<p>El <strong>Vibe Coding con inteligencia artificial<\/strong> funciona. Permite construir aplicaciones reales y complejas sin saber programar, siempre que sepas estructurar bien los prompts y revisar cr\u00edticamente lo que la IA genera. Las cosas que salieron bien en las pruebas de seguridad \u2014HTTPS, Prisma contra SQL Injection, JWT con bcrypt\u2014 funcionaron porque los prompts las ped\u00edan expl\u00edcitamente. Las que fallaron \u2014fuerza bruta sin l\u00edmite, headers incompletos, XSS\u2014 fallaron porque ning\u00fan prompt de arquitectura general las cubre por defecto.<\/p>\n\n\n\n<p>La conclusi\u00f3n pr\u00e1ctica: <strong>si construyes con Vibe Coding con inteligencia artificial, auditalo con OWASP<\/strong>. No como un paso opcional al final, sino como parte del proceso. El <strong>Vibe Coding con inteligencia artificial<\/strong> te da velocidad para construir; el pen testing te da la confianza para desplegarlo.<\/p>\n\n\n\n<p>Todo el c\u00f3digo est\u00e1 en GitHub y la app corre en Render. Los cinco prompts est\u00e1n en este art\u00edculo. Si quieres replicarlo, ya tienes todo lo que necesitas para empezar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cr\u00e9ditos<\/h2>\n\n\n\n<p>Autores <a href=\"https:\/\/niixer.com\/?s=Brayan+Camilo+Miranda\" target=\"_blank\" rel=\"noreferrer noopener\">Brayan Camilo Miranda<\/a> \u2013 <a href=\"https:\/\/niixer.com\/?s=Nicolas+Buitrago\" target=\"_blank\" rel=\"noreferrer noopener\">Nicol\u00e1s Buitrago Bogot\u00e1<\/a> \u2013 <a href=\"https:\/\/niixer.com\/?s=Luis+Fernando+Martinez\" target=\"_blank\" rel=\"noreferrer noopener\">Luis Fernando Mart\u00ednez<\/a><\/p>\n\n\n\n<p>Editores <a href=\"https:\/\/niixer.com\/?s=carlos+ivan+pinzon\" target=\"_blank\" rel=\"noreferrer noopener\">Magister Ingeniero Pinz\u00f3n<\/a> \u2013 <\/p>\n\n\n\n<p>C\u00f3digo: UCIAG-7<\/p>\n\n\n\n<p>Universidad<a href=\"https:\/\/www.ucentral.edu.co\/\" target=\"_blank\" rel=\"noreferrer noopener\">Universidad Central<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fuentes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Brennan, K. (2026, abril). Vibe coding may offer insight into our AI future. <em>The Harvard Gazette.<\/em> <a href=\"https:\/\/news.harvard.edu\/gazette\/story\/2026\/04\/vibe-coding-may-offer-insight-into-our-ai-future\/\" target=\"_blank\" rel=\"noreferrer noopener\">news.harvard.edu<\/a><\/li>\n\n\n\n<li>DataCamp. (2025, diciembre). \u00bfQu\u00e9 es la ingenier\u00eda de prompts? Una gu\u00eda detallada para 2026. <a href=\"https:\/\/www.datacamp.com\/es\/blog\/what-is-prompt-engineering-the-future-of-ai-communication\" target=\"_blank\" rel=\"noreferrer noopener\">datacamp.com<\/a><\/li>\n\n\n\n<li>daily.dev. (2026). Vibe coding in 2026: How AI is changing the way developers write code. <a href=\"https:\/\/daily.dev\/blog\/vibe-coding-how-ai-changing-developers-code\" target=\"_blank\" rel=\"noreferrer noopener\">daily.dev<\/a><\/li>\n\n\n\n<li>Ecosistema Startup. (2026). Google AI Studio: qu\u00e9 es y para qu\u00e9 sirve en 2026. <a href=\"https:\/\/ecosistemastartup.com\/google-ai-studio-que-es-y-para-que-sirve-en-2026\/\" target=\"_blank\" rel=\"noreferrer noopener\">ecosistemastartup.com<\/a><\/li>\n\n\n\n<li>Founderz. (2025). Prompt engineering: mejora la IA creativa. <a href=\"https:\/\/founderz.com\/es\/blog\/prompt-engineering-ia\/\" target=\"_blank\" rel=\"noreferrer noopener\">founderz.com<\/a><\/li>\n\n\n\n<li>Generative, Inc. (2025, octubre). Vibe coding: The future of intuitive software development. <a href=\"https:\/\/www.generative.inc\/vibe-coding-the-future-of-intuitive-software-development\" target=\"_blank\" rel=\"noreferrer noopener\">generative.inc<\/a><\/li>\n\n\n\n<li>Google Cloud. (2025). Vibe coding explained: Tools and guides. <a href=\"https:\/\/cloud.google.com\/discover\/what-is-vibe-coding\" target=\"_blank\" rel=\"noreferrer noopener\">cloud.google.com<\/a><\/li>\n\n\n\n<li>Google Cloud. (2026). M\u00e1s de 10 herramientas de IA sin coste econ\u00f3mico para el 2026. <a href=\"https:\/\/cloud.google.com\/use-cases\/free-ai-tools?hl=es\" target=\"_blank\" rel=\"noreferrer noopener\">cloud.google.com<\/a><\/li>\n\n\n\n<li>IBM. (2025a). What is vibe coding? <em>IBM Think.<\/em> <a href=\"https:\/\/www.ibm.com\/think\/topics\/vibe-coding\" target=\"_blank\" rel=\"noreferrer noopener\">ibm.com<\/a><\/li>\n\n\n\n<li>IBM. (2025b). \u00bfQu\u00e9 es el prompt engineering? <em>IBM Think.<\/em> <a href=\"https:\/\/www.ibm.com\/es-es\/think\/topics\/prompt-engineering\" target=\"_blank\" rel=\"noreferrer noopener\">ibm.com<\/a><\/li>\n\n\n\n<li>index.dev. (2025). How vibe coding is changing software development in 2025. <a href=\"https:\/\/www.index.dev\/blog\/vibe-coding-ai-development\" target=\"_blank\" rel=\"noreferrer noopener\">index.dev<\/a><\/li>\n\n\n\n<li>Infobae Tecno. (2026, marzo 17). C\u00f3mo funciona Google AI Studio, la herramienta para crear aplicaciones con Gemini. <a href=\"https:\/\/www.infobae.com\/tecno\/2026\/03\/17\/como-funciona-google-ai-studio-la-herramienta-para-crear-aplicaciones-con-gemini\/\" target=\"_blank\" rel=\"noreferrer noopener\">infobae.com<\/a><\/li>\n\n\n\n<li>OWASP Foundation. (2021). <em>OWASP Top 10.<\/em> <a href=\"https:\/\/owasp.org\/www-project-top-ten\/\" target=\"_blank\" rel=\"noreferrer noopener\">owasp.org<\/a><\/li>\n\n\n\n<li>OWASP Foundation. (2023). <em>OWASP ZAP.<\/em> <a href=\"https:\/\/owasp.org\/www-project-zap\/\" target=\"_blank\" rel=\"noreferrer noopener\">owasp.org<\/a><\/li>\n\n\n\n<li>OWASP Foundation. (2023). <em>OWASP Web Security Testing Guide.<\/em> <a href=\"https:\/\/owasp.org\/www-project-web-security-testing-guide\/\" target=\"_blank\" rel=\"noreferrer noopener\">owasp.org<\/a><\/li>\n\n\n\n<li>ICANN. (s.f.). WHOIS lookup. <a href=\"https:\/\/lookup.icann.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">lookup.icann.org<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>01 \u00bfC\u00f3mo funciona el Vibe Coding?\u2014 La metodolog\u00eda para construir software con IA sin programar El Vibe Coding con IA es una forma de crear software donde t\u00fa describes lo que quieres en lenguaje natural y la IA genera el c\u00f3digo por ti. No reemplaza el pensamiento l\u00f3gico ni laSeguir Leyendo<\/p>\n","protected":false},"author":2025,"featured_media":87006,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[4557],"tags":[4559,4561,31,228,4524],"class_list":["post-86998","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hacking-etico","tag-hacking-etico","tag-owasp-top-10","tag-tecnologia","tag-tecnologia-2","tag-vibe-code"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vibe Coding con IA y como auditarla con OWASP TOP 10<\/title>\n<meta name=\"description\" content=\"Aprende a crear una app con IA usando Vibe Coding con inteligencia artificial y Google AI Studio, y auditala con OWASP Top 10.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vibe Coding con IA y como auditarla con OWASP TOP 10\" \/>\n<meta property=\"og:description\" content=\"Aprende a crear una app con IA usando Vibe Coding con inteligencia artificial y Google AI Studio, y auditala con OWASP Top 10.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/\" \/>\n<meta property=\"og:site_name\" content=\"Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/niixer\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-19T17:36:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-20T00:29:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"bmirandah\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"bmirandah\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vibe Coding con IA y como auditarla con OWASP TOP 10","description":"Aprende a crear una app con IA usando Vibe Coding con inteligencia artificial y Google AI Studio, y auditala con OWASP Top 10.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/","og_locale":"es_ES","og_type":"article","og_title":"Vibe Coding con IA y como auditarla con OWASP TOP 10","og_description":"Aprende a crear una app con IA usando Vibe Coding con inteligencia artificial y Google AI Studio, y auditala con OWASP Top 10.","og_url":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/","og_site_name":"Portal de noticias de tecnolog\u00eda, Realidad Virtual, Aumentada y Mixta, Videojuegos","article_publisher":"https:\/\/www.facebook.com\/niixer\/","article_published_time":"2026-05-19T17:36:47+00:00","article_modified_time":"2026-05-20T00:29:01+00:00","og_image":[{"width":1080,"height":720,"url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","type":"image\/webp"}],"author":"bmirandah","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"bmirandah","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#article","isPartOf":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/"},"author":{"name":"bmirandah","@id":"https:\/\/niixer.com\/#\/schema\/person\/d9e304743cd55f555269ae4e3d63d722"},"headline":"Vibe Coding con inteligencia artificial: crea una app con Google AI Studio y auditala con OWASP TOP 10","datePublished":"2026-05-19T17:36:47+00:00","dateModified":"2026-05-20T00:29:01+00:00","mainEntityOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/"},"wordCount":2471,"publisher":{"@id":"https:\/\/niixer.com\/#organization"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","keywords":["Hacking \u00c9tico","OWASP Top 10","tecnolog\u00eda","Tecnologia","vibe code"],"articleSection":["Hacking \u00c9tico"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/","url":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/","name":"Vibe Coding con IA y como auditarla con OWASP TOP 10","isPartOf":{"@id":"https:\/\/niixer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#primaryimage"},"image":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#primaryimage"},"thumbnailUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","datePublished":"2026-05-19T17:36:47+00:00","dateModified":"2026-05-20T00:29:01+00:00","description":"Aprende a crear una app con IA usando Vibe Coding con inteligencia artificial y Google AI Studio, y auditala con OWASP Top 10.","breadcrumb":{"@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#primaryimage","url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","width":1080,"height":720,"caption":"Portada"},{"@type":"BreadcrumbList","@id":"https:\/\/niixer.com\/index.php\/2026\/05\/19\/vibe-coding-con-ia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/niixer.com\/"},{"@type":"ListItem","position":2,"name":"Vibe Coding con inteligencia artificial: crea una app con Google AI Studio y auditala con OWASP TOP 10"}]},{"@type":"WebSite","@id":"https:\/\/niixer.com\/#website","url":"https:\/\/niixer.com\/","name":"Portal de noticias de tecnolog\u00eda, ciencia, Android, iOS, Realidad Virtual, Aumentada y Mixta, Videojuegos, computadores, todo lo mas reciente en tecnolog\u00eda","description":"Portal de noticias de tecnolog\u00eda","publisher":{"@id":"https:\/\/niixer.com\/#organization"},"alternateName":"Niixer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/niixer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/niixer.com\/#organization","name":"Niixer","alternateName":"Niixer.com","url":"https:\/\/niixer.com\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/niixer.com\/#\/schema\/logo\/image\/","url":"https:\/\/niixer.com\/wp-content\/uploads\/2022\/08\/logo-niixer-sin-fondo-1.png","contentUrl":"https:\/\/niixer.com\/wp-content\/uploads\/2022\/08\/logo-niixer-sin-fondo-1.png","width":140,"height":140,"caption":"Niixer"},"image":{"@id":"https:\/\/niixer.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/niixer\/","https:\/\/www.instagram.com\/niixer.tecnologia\/"]},{"@type":"Person","@id":"https:\/\/niixer.com\/#\/schema\/person\/d9e304743cd55f555269ae4e3d63d722","name":"bmirandah","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/ee84bdb06cef7604251e07bd361c9b62ea65e25e6dc061ca760ba2d97cb6e6ff?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ee84bdb06cef7604251e07bd361c9b62ea65e25e6dc061ca760ba2d97cb6e6ff?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee84bdb06cef7604251e07bd361c9b62ea65e25e6dc061ca760ba2d97cb6e6ff?s=96&d=mm&r=g","caption":"bmirandah"},"url":"https:\/\/niixer.com\/index.php\/author\/bmirandah\/"}]}},"jetpack_featured_media_url":"https:\/\/niixer.com\/wp-content\/uploads\/2026\/05\/ChatGPT-Image-19-may-2026-12_44_01-1.webp","_links":{"self":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/86998","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/users\/2025"}],"replies":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/comments?post=86998"}],"version-history":[{"count":8,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/86998\/revisions"}],"predecessor-version":[{"id":87206,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/posts\/86998\/revisions\/87206"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media\/87006"}],"wp:attachment":[{"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/media?parent=86998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/categories?post=86998"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/niixer.com\/index.php\/wp-json\/wp\/v2\/tags?post=86998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}