🛡️
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
  • Ventajas de los Frameworks de Programación
  • 1. Validación de Entrada Estandarizada
  • 2. Gestión de Sesiones Segura
  • 3. Autenticación y Autorización Integradas
  • 4. Protección Contra CSRF
  • 5. Actualizaciones y Parches de Seguridad
  • Ejemplo Comparativo: login.php vs. /login de Laravel
  • Desarrollo Manual: login.php
  • Desarrollo con Framework: /login en Laravel
  • Análisis Comparativo
  • Conclusión

¿Te fue útil?

  1. AppWeb For Juniors

La Seguridad en el Desarrollo de Aplicativos: Frameworks vs. Desarrollo Manual

En el desarrollo de aplicaciones web, la seguridad es un aspecto crucial que no puede ser subestimado. La elección entre utilizar frameworks de programación o llevar a cabo un desarrollo manual tiene un impacto significativo en la seguridad de los aplicativos. Este artículo examina por qué, en muchos casos, los frameworks de programación ofrecen una mayor seguridad en comparación con un desarrollo manual sin frameworks.

Ventajas de los Frameworks de Programación

1. Validación de Entrada Estandarizada

Los frameworks suelen incluir mecanismos de validación de entrada que protegen contra diversas amenazas como la inyección de SQL, XSS (Cross-Site Scripting), y CSRF (Cross-Site Request Forgery). Por ejemplo, Laravel utiliza su sistema de validación y el ORM Eloquent para prevenir inyecciones de SQL, asegurando que las entradas del usuario sean correctamente sanitizadas antes de ser procesadas por la base de datos.

2. Gestión de Sesiones Segura

La gestión de sesiones es otro aspecto crítico que los frameworks manejan de manera eficiente. Laravel, por ejemplo, proporciona una gestión de sesiones robusta y segura, incluyendo la rotación de identificadores de sesión y almacenamiento seguro de sesiones. Esto reduce significativamente el riesgo de secuestro de sesiones.

3. Autenticación y Autorización Integradas

Los frameworks modernos vienen con sistemas de autenticación y autorización integrados. Laravel, por ejemplo, incluye características como la autenticación basada en tokens y la protección de rutas. Estas herramientas simplifican la implementación de controles de acceso, asegurando que solo los usuarios autorizados puedan acceder a determinadas áreas de la aplicación.

4. Protección Contra CSRF

La protección contra CSRF es fundamental para aplicaciones seguras. Laravel incluye protección CSRF automáticamente, generando y verificando tokens CSRF en los formularios, lo cual reduce la posibilidad de que se realicen peticiones maliciosas en nombre de un usuario autenticado.

5. Actualizaciones y Parches de Seguridad

Los frameworks populares tienen comunidades activas y equipos de desarrollo que constantemente monitorean y actualizan el código para mitigar nuevas amenazas de seguridad. Esto significa que las aplicaciones construidas sobre frameworks reciben actualizaciones de seguridad de manera regular, algo que un desarrollo manual podría no lograr tan eficientemente.

Ejemplo Comparativo: login.php vs. /login de Laravel

Para ilustrar las ventajas de utilizar un framework de programación en términos de seguridad, comparemos dos enfoques para un sistema de autenticación: uno utilizando un archivo login.php en un desarrollo manual y otro utilizando la ruta /login en Laravel.

Desarrollo Manual: login.php

<?php
// login.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // Conexión a la base de datos
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Prevención de inyección de SQL
    $username = $conn->real_escape_string($username);
    $password = $conn->real_escape_string($password);

    // Consulta a la base de datos
    $sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // Autenticación exitosa
        session_start();
        $_SESSION['username'] = $username;
        header("Location: dashboard.php");
    } else {
        // Error de autenticación
        echo "Invalid login credentials.";
    }
}
?>

Desarrollo con Framework: /login en Laravel

// web.php (Rutas de Laravel)
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');

// LoginController.php
namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function showLoginForm()
    {
        return view('auth.login');
    }

    public function login(Request $request)
    {
        $this->validate($request, [
            'email' => 'required|email',
            'password' => 'required|min:6',
        ]);

        if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
            // Autenticación exitosa
            return redirect()->intended('dashboard');
        } else {
            // Error de autenticación
            return back()->withErrors(['email' => 'Invalid login credentials.']);
        }
    }
}

Análisis Comparativo

  1. Validación de Entrada:

    • Manual: La validación se realiza de forma explícita, lo que puede ser propenso a errores y omisiones.

    • Laravel: Utiliza reglas de validación integradas y centralizadas que aseguran una verificación exhaustiva y uniforme de los datos de entrada.

  2. Gestión de Sesiones:

    • Manual: La gestión de sesiones se realiza de forma manual, lo cual puede llevar a errores si no se implementa correctamente.

    • Laravel: Laravel maneja las sesiones de forma segura y automática, reduciendo la complejidad y el riesgo de fallos.

  3. Protección contra Ataques:

    • Manual: La prevención de ataques como inyección de SQL y CSRF requiere implementación manual y cuidadosa.

    • Laravel: Proporciona protección contra estos ataques de manera predeterminada, simplificando el desarrollo seguro.

  4. Mantenimiento y Actualización:

    • Manual: Requiere que el desarrollador esté constantemente al tanto de las nuevas amenazas y actualice el código en consecuencia.

    • Laravel: Las actualizaciones de seguridad se implementan rápidamente gracias a una comunidad activa y un equipo de desarrollo dedicado.

Conclusión

Utilizar frameworks de programación no solo acelera el proceso de desarrollo, sino que también introduce prácticas de seguridad robustas que pueden ser difíciles de implementar correctamente en un desarrollo manual. Los frameworks como Laravel proporcionan una arquitectura segura, validaciones integradas, gestión de sesiones, y protección contra ataques comunes, lo que resulta en aplicativos más seguros y menos propensos a vulnerabilidades.

En resumen, mientras que el desarrollo manual puede ser adecuado para proyectos pequeños o específicos, el uso de frameworks de programación es altamente recomendable para asegurar que las aplicaciones sean seguras, escalables y mantenibles a lo largo del tiempo.

AnteriorAtacando CMSSiguienteOWASP Top Ten

Última actualización hace 11 meses

¿Te fue útil?