🛡️
Hacking para Juniors - [CPPJ]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacker
    • ADVERTENCIA
    • Aprende GRATIS con El Curso De Junior a Senior en Hacking
    • Conoce tu Academia
    • Aprende con nuestro curso
    • Conoce a tu instructor
  • Fundamentos de la ciberseguridad ofensiva
    • ¿Que es el Ethical Hacking?
      • Tipos de Hackers
        • APTs (Advanced Persistent Threats)
    • ¿Que es el pentesting?
      • Tipos de Caja en Pentesting
      • Tipos de tecnologia
      • Etapas de un pentest
        • Escalacion de privilegios
    • ¿Qué es un CVE?
    • ¿Que es un escaneo de vulnerabilidades?
    • ¿Que es un Red Team?
      • Command and Control
    • ¿Que es la ingenieria social?
      • Kevin Mitnick
      • Libros Recomendados
    • El papel de los Juniors y la IA
  • OSINT for Juniors
    • Open-source intelligence (OSINT)
    • Tipos de fuentes OSINT
    • Herramientas para OSINT
    • Dorks de Google
  • OS for Juniors
    • Introduccion a Sistemas Operativos
    • Archivo y extensiones
    • Windows
      • Estructura del SO
        • Kernel De Windows
        • Servicios Importantes
        • Procesos en Windows
        • Registros en Windows
        • Gestion de archivos en Windows
      • Versiones relevantes
      • La importancia de identificar la version de windows durante una auditoria
      • Tips
    • Linux
      • Tips
    • Android
      • Versiones relevantes
      • Tips
    • IOS
      • Versiones Relevantes
      • Tips
    • macOS
      • Versiones Relevantes
      • Tips
    • Sistemas operativos para Hackers
    • Instalacion de Kali Linux
  • Networking for Juniors
    • ¿Que es el Networking?
    • Fundamentos de Redes
    • Estructura de Redes
    • Topologías de Red
    • Modelo OSI (Open Systems Interconnection)
    • Modelo TCP/IP
    • IP (Internet Protocol)
    • TCP (Transmission Control Protocol)
    • UDP (User Datagram Protocol)
    • Protocolos de red
      • Protocolos de la capa de acceso al medio
      • Protocolos de la capa de red
      • Protocolos de la capa de transporte
      • Protocolos de la capa de aplicación
      • Protocolos de aplicación en correo electrónico
    • Puertos y servicios
      • Puerto 21: FTP
      • Puerto 22: SSH
      • Puerto 23: Telnet
      • Puerto 25: - SMTP
      • Puerto 53: DNS
      • Puerto 80: HTTP
      • Puerto 443: HTTPS
      • Puerto 139 y 445: SMB - CIFS
      • Puerto 3389: RDP
      • Puerto 389: LDAP
      • Puerto 5000: Docker
      • Puerto 5900: VNC
  • Nmap for Juniors
    • ¿Que es Nmap?
    • Tu Primer Nmap
    • Parametros de Nmap
    • Comandos utiles
    • Scripts de Nmap
  • Wi-Fi y Radiofrecuencias
    • Fundamentos de Wireless
    • Fundamentos del Hacking de Wi-Fi
    • Fundamentos en Radiofrecuencias
    • RFID (Radio Frequency Identification)
    • Infrarrojo (IR)
    • Bluetooth
    • NFC (Near Field Communication)
    • Herramientas de un hacker
    • Fundamentos en Hardware Hacking
  • AppWeb For Juniors
    • ¿Porque deberia aprender hacking web?
    • Fundamentos de Aplicaciones Web
      • Códigos de estado HTTP
    • Fundamentos de APIs
      • Métodos HTTP
      • Practica Gratis
    • Cabeceras de seguridad
    • Analisis de certificados SSL
    • Mecanismos de autenticacion y autorizacion en AppWeb
    • Atacando CMS
    • La Seguridad en el Desarrollo de Aplicativos: Frameworks vs. Desarrollo Manual
    • OWASP Top Ten
  • Databases for Juniors
    • ¿Base de Datos?
      • SQL
      • NoSQL
    • Puerto 6379: Redis
    • Puerto 27017: MongoDB
    • Puerto 5432: PostgreSQL
    • Puerto 3306: MySQL
    • Puerto 1433: Microsoft SQL Server
    • Puerto 1521: - Oracle Database
  • Transferencia de Archivos
    • Introduccion a la Transferencia de archivos
    • Descargando desde Windows
      • Utilizando LOLBAS
    • Descargando desde Linux
    • Despliegue de servicio HTTP
    • Despliegue de servicio SMB
    • Despligue de servicio FTP
    • Utilizando Base64
  • Fundamentos en Vulnerabilidades
    • ¿Qué es una Vulnerabilidad?
    • ¿Qué es un 0day?
    • Common Vulnerabilities and Exposures - [CVE]
    • RCE (Remote Code Execution)
    • Buffer Overflow
  • Malware For Junior
    • ¿Que es Malware?
    • ¿Que es un AntiVirus?
      • Microsoft Defender
    • ¿Que es un EDR?
      • Mejores EDRs actuales
    • Desarrollo de Malware
    • Malware for Windows
      • Golang
      • Nim
      • C#
    • Ofuscacion de Malware
  • Shell
    • ¿Shell?
      • CMD (Command Prompt) en Windows
      • PowerShell en Windows
      • Bash en Unix/Linux
    • ¿Reverse Shell?
    • ¿Web Shell?
    • ¿Bind Shell?
    • Enumeracion de Windows
    • Enumeracion de Linux
  • Privilege Escalation for Juniors
    • ¿Que es la escalacion de privilegios?
    • PrivEsc For Windows
      • WinPEAS
    • PrivEsc For Linux
      • LinPEAS
    • PrivEsc For Active Directory
    • PrivEsc For Cloud Computing
  • Tecnicas de persistencia
    • Fundamentos de Persistencia
    • Persistencia en Windows
    • Persistencia en Linux
    • Persistencia Avanzada
  • Pivoting for Juniors
    • ¿Que es pivoting?
    • ¿Que es Socks?
    • Doble Pivoting y Triple Pivoting
    • RPivot y Chisel
  • Active Directory For Juniors
    • Fundamentos de Active Directory
    • Utilizando ADPeas para el reconocimiento
  • Cloud Computing For Juniors
    • Fundamentos de cloud computing
    • Amazon Web Services
    • Microsoft Azure
    • Google Cloud Platform
  • Introduccion a Blue Team
    • ¿Blue Team?
    • ¿SOC?
    • ¿Threat Hunting?
    • SIEM (Security Information and Event Management)
    • La fatiga del SOC
    • ¿SOAR?
  • Defensas y herramientas de seguridad perimetral
    • Soluciones de Seguridad Perimetral Esenciales
    • Firewall
    • IDS (Intrusion Detection System)
    • IPS (Intrusion Prevention System)
    • WAF (Web Application Firewall)
    • Firewalls de Próxima Generación (NGFW)
    • Gateways de Seguridad Web (SWG)
    • Gateways de Seguridad de Correo Electrónico (SEG)
    • Sistemas de Prevención de Fugas de Datos (DLP)
    • Network Access Control (NAC)
  • Muchas gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • Evolución de las APIs
  • APIs Antiguas
  • APIs Modernas
  • Lenguajes de Programación Relacionados
  • Comparación: APIs Antiguas vs. Modernas
  • APIs Antiguas
  • APIs Modernas
  • Relación de las APIs con las Bases de Datos
  • OWASP Top Ten para APIs
  • Aplicaciones Monolíticas vs. Microservicios y Functions
  • Monolíticas
  • Microservicios
  • Functions (Funcionalidad como Servicio - FaaS)

¿Te fue útil?

  1. AppWeb For Juniors

Fundamentos de APIs

Una API (Application Programming Interface) es un conjunto de definiciones y protocolos que permite a una aplicación comunicarse con otra. Las APIs facilitan la integración y permiten que diferentes sistemas intercambien datos y funcionalidades. En el contexto de aplicaciones web, las APIs permiten a los servicios backend comunicarse con frontend y otros servicios externos.

Evolución de las APIs

APIs Antiguas

Las primeras APIs eran relativamente simples y estaban principalmente basadas en protocolos como SOAP (Simple Object Access Protocol). Estas APIs eran más difíciles de manejar y menos flexibles.

  • SOAP: Protocolo basado en XML que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de información.

  • Características: Estricta estructura de mensajes, mayores requisitos de configuración.

APIs Modernas

Las APIs modernas utilizan principalmente REST (Representational State Transfer) y, más recientemente, GraphQL. Son más flexibles, fáciles de usar y permiten una mejor integración con aplicaciones modernas.

  • REST: Arquitectura que utiliza HTTP y se basa en operaciones estándar como GET, POST, PUT y DELETE.

  • GraphQL: Lenguaje de consulta para APIs que permite a los clientes solicitar exactamente los datos que necesitan.

Lenguajes de Programación Relacionados

Los lenguajes de programación utilizados para desarrollar APIs incluyen una variedad tanto del lado del servidor como del cliente.

  • Lado del Servidor: Node.js, Python, Ruby, Java, C#, PHP, Go.

  • Lado del Cliente: JavaScript, TypeScript.

Comparación: APIs Antiguas vs. Modernas

APIs Antiguas

  • Tecnologías: SOAP, XML.

  • Características: Mensajes estructurados, alta configuración, menos flexibilidad.

  • Bases de Datos: Integración limitada y específica.

APIs Modernas

  • Tecnologías: REST, GraphQL, JSON.

  • Características: Flexibilidad, facilidad de uso, estructura ligera, mejor soporte para CRUD (Create, Read, Update, Delete).

  • Bases de Datos: Integración directa y eficiente con bases de datos SQL y NoSQL.

Relación de las APIs con las Bases de Datos

Las APIs son cruciales para la interacción con las bases de datos. Sirven como intermediarios que permiten a las aplicaciones frontend y otros servicios acceder y manipular datos almacenados en bases de datos.

  • Bases de Datos Relacionales (SQL): MySQL, PostgreSQL, Oracle.

  • Bases de Datos NoSQL: MongoDB, Cassandra, CouchDB.

Las APIs utilizan ORM (Object-Relational Mapping) y otras técnicas para interactuar eficientemente con las bases de datos, facilitando operaciones CRUD.

OWASP Top Ten para APIs

El OWASP (Open Web Application Security Project) también ha identificado las vulnerabilidades más críticas para las APIs, conocidas como el OWASP API Security Top Ten.

  1. Broken Object Level Authorization: Acceso no autorizado a objetos sensibles.

  2. Broken User Authentication: Fallos en los mecanismos de autenticación de usuarios.

  3. Excessive Data Exposure: Exposición de datos innecesarios en las respuestas de las API.

  4. Lack of Resources & Rate Limiting: Falta de limitación de recursos y tasa de peticiones.

  5. Broken Function Level Authorization: Permisos incorrectos en funciones de la API.

  6. Mass Assignment: Exposición involuntaria de propiedades de objetos a través de entradas de usuario.

  7. Security Misconfiguration: Configuraciones de seguridad incorrectas o predeterminadas inseguras.

  8. Injection: Inyecciones SQL, NoSQL, comandos del sistema, etc.

  9. Improper Assets Management: Mala gestión de versiones y documentación de la API.

  10. Insufficient Logging & Monitoring: Falta de registros y monitoreo adecuados para detectar y responder a incidentes.

Aplicaciones Monolíticas vs. Microservicios y Functions

Monolíticas

  • Definición: Una aplicación monolítica es una aplicación unificada y autónoma en la que todos los componentes están interconectados y gestionados como una sola unidad.

  • Ventajas: Simplicidad en el desarrollo y despliegue inicial, mejor rendimiento en comunicaciones internas.

  • Desventajas: Escalabilidad limitada, dificultad para mantener y actualizar, un fallo puede afectar a toda la aplicación.

Microservicios

  • Definición: Arquitectura en la que la aplicación se divide en pequeños servicios independientes que se comunican entre sí a través de APIs.

  • Ventajas: Escalabilidad, facilidad de mantenimiento, despliegue independiente de servicios.

  • Desventajas: Complejidad en la gestión de la comunicación entre servicios, sobrecarga operativa.

Functions (Funcionalidad como Servicio - FaaS)

  • Definición: Modelo de computación en la nube que permite a los desarrolladores ejecutar código en respuesta a eventos sin necesidad de gestionar servidores.

  • Ventajas: Escalabilidad automática, pago por uso, simplicidad en la gestión de infraestructura.

  • Desventajas: Latencia en el arranque de funciones, dependencia del proveedor de servicios.

AnteriorCódigos de estado HTTPSiguienteMétodos HTTP

Última actualización hace 11 meses

¿Te fue útil?