eJPT
  • 👋Welcome
  • Tools
    • 🔭Escaneo y Enumeración
  • SECTION 1: Assessment Methodologies
    • Assessment Methodologies: Information Gathering
      • Introducción a la Recopilación de Información
        • Start Quiz
      • Passive Information Gathering
      • Active Information Gathering
    • Assessment Methodologies: Footprinting & Scanning
      • Introduction
      • Networking Primer
      • Host Discovery
      • Port Scanning
      • Evasion, Scan Performance & Output
      • Page
      • Challenges
    • Assessment Methodologies: Enumeration
      • Overview
      • SMB Lesson
      • FTP Lesson
      • SSH Lesson
      • HTTP Lesson
      • SQL Lesson
    • Assessment Methodologies: Vulnerability Assessment
      • Vulnerability Assessment
      • Course Labs
  • SECTION 2: Host & Networking Auditing
    • Assessment Methodologies: Auditing Fundamentals
      • Assessment Methodologies
      • Practice
  • SECTION 3: Host & Network Penetration Testing
    • Host & Network Penetration Testing: System/Host Based Attacks
      • Introduction to Attacks
      • Windows Vulnerabilities
      • Exploiting Windows Vulnerabilities
      • Windows Privilege Escalation
      • Windows File System Vulnerabilities
      • Windows Credential Dumping
      • Linux Vulnerabilities
      • Exploiting Linux Vulnerabilities
      • Linux Privilege Escalation
      • Linux Credential Dumping
      • Conclusion
    • Host & Network Penetration Testing: Network-Based Attacks
      • Network-Based Attacks
    • Host & Network Penetration Testing: The Metasploit Framework (MSF)
      • Metasploit
        • Metasploit Fundamentals
      • Information Gathering & Enumeration
        • Nmap
        • Enumeration
      • Vulnerability Scanning
        • MSF
        • Nessus
        • Web Apps
      • Client-Side Attacks
        • Payloads
        • Automating
      • Exploitation
        • Windows Exploitation
        • Linux Exploitation
        • Post Exploitation Fundamentals
        • Windows Post Exploitation
        • Linux Post Exploitation
      • Armitage
        • Metasploit GUIs
    • Host & Network Penetration Testing: Exploitation
      • Introduction To Exploitation
      • Vulnerability Scanning Overview
      • Exploits
        • Searching For Exploits
        • Fixing Exploits
      • Shells
      • Frameworks
      • Windows
      • Linux
      • Obfuscation
    • Host & Network Penetration Testing: Post-Exploitation
      • Introduction
      • Windows Enumeration
      • Linux Enumeration
      • Transferring Files
      • Shells
      • Escalation
        • Windows Privilege Escalation
        • Linux Privilege Escalation
      • Persistence
        • Windows Persistence
        • Linux Persistence
      • Dumping & Cracking
        • Windows Password Hashes
        • Linux Password Hashes
      • Pivoting Lesson
      • Clearing
  • Host & Network Penetration Testing: Social Engineering
    • Social Engineering
  • SECTION 4: Web Application Penetration Testing
    • Introduction to the Web & HTTP Protocol
      • Web Applications
      • HTTP Protocol
        • HTTP/S Protocol Fundamentals
        • Website Crawling & Spidering
Powered by GitBook
On this page
  • Introduction to HTTP
  • HTTP Protocol
  • HTTP Protocol Basics
  • HTTP Protocol Basics
  • Quiz: Introduction to HTTP
  • HTTP Requests
  • HTTP Request Components
  • HTTP Request Example
  • HTTP Request Methods Explained
  • HTTP Request URL/Path
  • HTTP Request Protocol
  • HTTP Request Host Header
  • HTTP Request User-Agent Header
  • HTTP Request Accept Header
  • HTTP Request Accept-Encoding Header
  • HTTP Request Connection Header
  • Quiz: HTTP Requests
  • HTTP Responses
  • HTTP Response Components
  • HTTP Request Response Example
  • HTTP Response Example
  • HTTP Response Status-Line
  • Common HTTP Status Codes
  • HTTP Response Date Header
  • HTTP Response Cache-Control Header
  • HTTP Response Content-Type Header
  • HTTP Response Content-Encoding Header
  • HTTP Response Server Header
  • Quiz: HTTP Responses
  • HTTP Basics Lab
  • Demo: HTTP Basics Lab
  • Quiz: HTTP Basics Lab
  • HTTPS
  • HTTPS Advantages
  • HTTPS Security Considerations
  • Quiz: HTTPS
  1. SECTION 4: Web Application Penetration Testing
  2. Introduction to the Web & HTTP Protocol
  3. HTTP Protocol

HTTP/S Protocol Fundamentals

PreviousHTTP ProtocolNextWebsite Crawling & Spidering

Last updated 7 months ago

Introduction to HTTP

HTTP Protocol

HTTP (Hypertext Transfer Protocol) es un protocolo de capa de aplicación sin estado que se utiliza para la transmisión de recursos como datos de aplicaciones web y se ejecuta sobre TCP.

Fue diseñado específicamente para la comunicación entre navegadores web y servidores web.

HTTP utiliza la arquitectura típica de cliente-servidor para la comunicación, en la que el navegador es el cliente y el servidor web es el servidor.

Los recursos se identifican de forma única con una URL/URI.

HTTP tiene 2 versiones: HTTP 1.0 y HTTP 1.1.

  • HTTP 1.1 es la versión más utilizada de HTTP y tiene varias ventajas sobre HTTP 1.0, como la capacidad de reutilizar la misma conexión y puede solicitar múltiples URI/recursos.

HTTP Protocol Basics

HTTP Protocol Basics

Durante la comunicación HTTP, el cliente y el servidor intercambian mensajes, que normalmente se clasifican como solicitudes y respuestas HTTP.

El cliente envía solicitudes al servidor y recibe respuestas.

Quiz: Introduction to HTTP

HTTP Requests

HTTP Request Components

Request Line

El Request Line es la primera línea de una solicitud HTTP y contiene los siguientes tres componentes:

  • Método HTTP (p. ej., GET, POST, PUT, DELETE, etc.): indica el tipo de solicitud que se está realizando.

  • URL (Uniform Resource Locator): la dirección del recurso al que el cliente desea acceder.

  • Versión HTTP: la versión del protocolo HTTP que se está utilizando (p. ej., HTTP/I.I).

Request Headers

Los encabezados proporcionan información adicional sobre la solicitud. Los encabezados comunes incluyen:

  • User-Agent: información sobre el cliente que realiza la solicitud (por ejemplo, tipo de navegador).

  • Host: el nombre de host del servidor.

  • Accept: los tipos de medios que el cliente puede manejar en la respuesta (por ejemplo, HTML, JSON).

  • Authorization: credenciales para autenticación, si es necesario.

  • Cookie: información almacenada en el lado del cliente y enviada de vuelta al servidor con cada solicitud.

Request Body (Optional)

Algunos métodos HTTP (como POST o PUT) incluyen un cuerpo de solicitud donde se envían los datos al servidor, generalmente en formato JSON o de formulario.

HTTP Request Example

Examinemos una solicitud HTTP en detalle. A continuación, se muestran los datos que contiene una solicitud que enviamos cuando navegamos a www.google.com con un navegador web.

Se inicia una solicitud HTTP a www.google.com. Lo que se ve aquí son los encabezados (HTTP Request Headers) para esta solicitud.

Tenga en cuenta que se inicia una conexión a www.google.com en el puerto 80 antes de enviar comandos HTTP al servidor web.

Los métodos de solicitud HTTP (HTTP Verbs) proporcionan una forma estandarizada para que los clientes y servidores se comuniquen e interactúen con los recursos en la Web. La elección del método adecuado depende del tipo de operación que se debe realizar en el recurso.

GET es el método de solicitud predeterminado que se utiliza cuando se realiza una solicitud a una aplicación web; en este caso, estamos intentando conectarnos a www.google.com.

HTTP Request Methods Explained

Method
Function

GET

El método GET se utiliza para recuperar datos del servidor. Solicita el recurso especificado en la URL y no modifica el estado del servidor. Es un método seguro e idempotente, lo que significa que realizar la misma solicitud GET varias veces no debería tener efectos secundarios.

POST

El método POST se utiliza para enviar datos para que los procese el servidor. Normalmente incluye datos en el cuerpo de la solicitud y el servidor puede realizar acciones en función de esos datos. Las solicitudes POST pueden provocar cambios en el estado del servidor y no son idempotentes.

PUT

El método PUT se utiliza para actualizar o crear un recurso en el servidor en la URL especificada. Reemplaza todo el recurso con la nueva representación proporcionada en el cuerpo de la solicitud. Si el recurso no existe, PUT puede crearlo.

DELETE

El método DELETE se utiliza para eliminar el recurso especificado por la URL del servidor. Después de una solicitud DELETE exitosa, el recurso ya no estará disponible en esa URL.

PATCH

El método PATCH se utiliza para aplicar modificaciones parciales a un recurso. Es similar al método PUT, pero solo actualiza partes específicas del recurso en lugar de reemplazar el recurso completo.

HEAD

El método HEAD es similar al método GET, pero solo recupera los encabezados de respuesta y no el cuerpo de la respuesta. Se suele utilizar para comprobar los encabezados en busca de elementos como la existencia de un recurso o las fechas de modificación.

OPTIONS

El método OPTIONS se utiliza para recuperar información sobre las opciones de comunicación disponibles para el recurso de destino. Permite a los clientes determinar los métodos y encabezados compatibles con un recurso en particular.

HTTP Request URL/Path

La dirección del recurso/URL al que el cliente desea acceder.

La página de inicio de un sitio web siempre es 1'/"t. Por supuesto, se pueden solicitar otras páginas, por ejemplo: /downloads/index.php.

Su solicitud siempre hace referencia a la carpeta raíz para especificar el archivo solicitado (de ahí el "/" inicial).

HTTP Request Protocol

Esta es la versión del protocolo HTTP con el que su navegador desea comunicarse (HTTP 1.0/HTTP 1.1).

HTTP Request Host Header

Este es el comienzo de los HTTP Request Headers. Los HTTP Headers tienen la siguiente estructura: Heade r -name : Heade r -Value.

El Host header permite que un servidor web aloje varios sitios web en una única dirección IP. Nuestro navegador especifica en el encabezado Host qué sitio web le interesa.

Después de cada encabezado de solicitud, encontrará el valor correspondiente. En este caso, queremos acceder al host www.google.com.

Nota: El valor del host + Path se combinan para crear la URL completa que está solicitando: la página de inicio de www.google.com/

HTTP Request User-Agent Header

El User-Agent se utiliza para especificar y enviar su navegador, la versión del navegador, el sistema operativo y el idioma al servidor web remoto.

Todos los navegadores web tienen su propia cadena de identificación de User-Agent. Así es como la mayoría de los sitios web reconocen el tipo de navegador en uso.

HTTP Request Accept Header

Su navegador utiliza el encabezado Accept para especificar qué tipos de documentos/archivos se espera que se devuelvan desde el servidor web como resultado de esta solicitud.

HTTP Request Accept-Encoding Header

El Header Accept-Encoding es similar a Accept y se utiliza para restringir la codificación de contenido aceptable en la respuesta. La codificación de contenido se utiliza principalmente para permitir que un documento se comprima o transforme sin perder el formato original y sin perder información.

HTTP Request Connection Header

Al utilizar HTTP 1.1, puede mantener o reutilizar la conexión al servidor web remoto durante un período de tiempo no especificado utilizando el valor "keep-alive".

Esto indica que todas las solicitudes al servidor web se seguirán enviando a través de esta conexión sin iniciar una nueva conexión cada vez (como en HTTP 1.0).

Quiz: HTTP Requests

HTTP Responses

HTTP Response Components

Response Headers

De manera similar a los encabezados de solicitud, los encabezados de respuesta brindan información adicional sobre la respuesta. Los encabezados comunes incluyen:

  • Content-Type: el tipo de medio del contenido de la respuesta (p. ej., text/html, application/json).

  • Content-Length: el tamaño del cuerpo de la respuesta en bytes.

  • Set-Cookie: se utiliza para establecer cookies en el lado del cliente para solicitudes posteriores.

  • Cache-Control: directivas para el comportamiento de almacenamiento en caché.

Response Body (Optional)

El cuerpo de la respuesta contiene el contenido real de la respuesta. Por ejemplo, en el caso de una página HTML, el cuerpo de la respuesta contendrá el marcado HTML.

HTTP Request Response Example

Ahora que sabemos de qué se compone una solicitud HTTP, examinemos las respuestas HTTP.

En respuesta a la solicitud HTTP, el servidor web responderá con el recurso solicitado, precedido por un conjunto de nuevos encabezados de respuesta HTTP.

Estos nuevos encabezados de respuesta del servidor web serán utilizados por su navegador web para interpretar el contenido incluido en el contenido/cuerpo de la respuesta.

HTTP Response Example

El fragmento de código que aparece a continuación es un ejemplo de una respuesta típica de un servidor web.

Nota: Se ha omitido el cuerpo de la respuesta o el contenido de la página, ya que no es relevante en este momento.

Examinemos algunos de estos encabezados de respuesta HTTP con mayor detalle.

HTTP Response Status-Line

La primera línea de una respuesta HTTP es la línea de estado (Status-Line), que consta de la versión del protocolo (HTTP 1.1) seguida del código de estado HTTP (200) y su significado textual relativo (0K).

Common HTTP Status Codes

Status Code
Meaning

200 0K

La solicitud se realizó correctamente y el servidor ha devuelto los datos solicitados.

301 Moved Permanently

El recurso solicitado se ha movido de forma permanente a una nueva URL y el cliente debe utilizar la nueva URL para todas las solicitudes futuras.

302 Found

El recurso solicitado se encuentra temporalmente en una URL diferente. Este código se utiliza habitualmente para redirecciones temporales, pero suele ser mejor utilizar 303 o 307 en su lugar.

400 Bad Request

El servidor no puede procesar la solicitud debido a un error del cliente (por ejemplo, sintaxis de solicitud mal formada).

401 Unauthorized

Se requiere autenticación y el cliente debe proporcionar credenciales válidas para acceder al recurso solicitado.

403 Forbidden

El servidor entendió la solicitud, pero el cliente no tiene permiso para acceder al recurso solicitado.

404 Not Found

No se pudo encontrar el recurso solicitado en el servidor.

500 Internal Server Error

El servidor encontró un error al procesar la solicitud y no se proporciona la causa específica.

HTTP Response Date Header

El encabezado "Date" de una respuesta HTTP se utiliza para indicar la fecha y la hora en que el servidor generó la respuesta.

Ayuda a los clientes e intermediarios a comprender la actualidad de la respuesta y a sincronizar la hora entre el servidor y el cliente.

HTTP Response Cache-Control Header

Los encabezados de caché permiten que el navegador y el servidor se pongan de acuerdo sobre las reglas de almacenamiento en caché. Permiten a los servidores web indicar a los clientes durante cuánto tiempo pueden almacenar en caché la respuesta y en qué condiciones deben volver a validarla con el servidor.

Esto ayuda a optimizar el rendimiento y la eficiencia de las aplicaciones web al reducir las solicitudes de red innecesarias.

Cache-Control Directives

Directive
Meaning

Public

Indica que la respuesta puede ser almacenada en caché por cualquier caché intermedio (como servidores proxy) y compartida entre diferentes usuarios.

Private

Especifica que la respuesta está destinada a un usuario específico y no debe ser almacenada en caché por cachés intermedios.

no-cache

Indica al cliente que vuelva a validar la respuesta con el servidor antes de usar la versión almacenada en caché. No impide el almacenamiento en caché, pero requiere la revalidación.

no-store

Indica al cliente y a los cachés intermedios que no almacenen ninguna versión de la respuesta. Garantiza que la respuesta no se almacene en caché en ningún formato.

max-age=<SECONDS>

Especifica la cantidad máxima de tiempo en segundos que el cliente puede almacenar en caché la respuesta. Después de este período, el cliente debe volver a validar con el servidor.

HTTP Response Content-Type Header

El encabezado "Content-Type" en una respuesta HTTP se utiliza para indicar el tipo de contenido del medio de la respuesta.

Le indica al cliente qué tipo de datos está enviando el servidor para que el cliente pueda manejarlos adecuadamente.

HTTP Response Content-Encoding Header

El encabezado "Content-Encoding" de una respuesta HTTP se utiliza para especificar la codificación de compresión aplicada al contenido de la respuesta.

Le indica al cliente cómo ha codificado el servidor los datos de respuesta, lo que permite al cliente decodificarlos y descomprimirlos correctamente.

HTTP Response Server Header

El encabezado "Server" muestra el banner del servidor web, por ejemplo, Apache, Nginx, IIS, etc.

Google utiliza un banner de servidor web personalizado: gvvs (Google VVeb Server).

Quiz: HTTP Responses

HTTP Basics Lab

Existe dos tipos de comunicaciones que se realiza durante una navegacion web, uno es atravez del la conexion htpp (rquest/response) y otro es a nivel de TCP

Demo: HTTP Basics Lab

Wireshark

Antes de inicializar una comunicacion http, primero se inicia una conexion TCP, como se observa en la siguiente imagen.

Una vez que la conexion a nivel de TCP sea exitosa, se procede a la conexion a nivel de http, en el mismo se ve un paquete con la solicitud "GET", y si ingresamos al paquete en la sección "Hypertext Transfer Protocol" podremos observar todas las cabeceras del cuerpo de la solicitud

Si le da follow a los paquetes de TCP Stream, podra obserbar que tiene paquetes tanto de solicitud como respuestas, y podrá observar como funciona los paquetes de gzip, desde la descargar hasta que los mismos se descomprimen.

Los archivos gzip generalmente se encuentran codificados, pero desde wireshark se puede decodificar y descargar. Menu > File > Export Objects > HTTP

Curl

curl -v http://192.191.151.3/

A continuación se presenta un ejemplo de cómo podría verse la salida del comando curl -v http://192.191.151.3/:

*   Trying 192.191.151.3:80...
* Connected to 192.191.151.3 (192.191.151.3) port 80 (#0)
> GET / HTTP/1.1
> Host: 192.191.151.3
> User-Agent: curl/7.68.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Mon, 02 Oct 2023 12:34:56 GMT
< Server: Apache/2.4.41 (Ubuntu)
< X-Powered-By: PHP/5.5.9-1ubuntu4.25
< Set-Cookie: PHPSESSID=4kdjee8snv5s820pemr41p6973; path=/
< Expires: Thu, 19 Nov 1981 GMT
< Cache-Control: no-store, no-cache, must- revalidate, post-check=0,
< Pragma: no-cache
< Vary: Accept -Encoding
< Content-Length: 1234
< Content-Type: text/html; charset=UTF-8
< 

<!doctype html>
<html>
<head><title>Example Page</title></head>
<body>
<h1>Hello World!</h1>
<p>This is an example response from the server.</p>
</body>
</html>
* Connection #0 to host 192.191.151.3 left intact

En este ejemplo, curl establece una conexión con el servidor, envía una solicitud GET, y recibe una respuesta HTTP 200 junto con contenido tipo text/html.

Descripción de las Cabeceras HTTP

Las cabeceras HTTP proporcionan información adicional sobre la solicitud o respuesta. A continuación se describen algunas de las cabeceras presentes en el ejemplo:

  • Date: Indica la fecha y hora en la que se generó la respuesta en formato GMT.

  • Server: Especifica el software que está sirviendo la solicitud, en este caso, Apache versión 2.4.41 en Ubuntu.

  • X-Powered-By: Muestra la tecnología detrás del servidor, aquí PHP versión 5.5.9.

  • Set-Cookie: Asigna una cookie al cliente, aquí con el valor PHPSESSID que identifica la sesión.

  • Content-Type: Define el tipo de contenido de la respuesta, en este caso text/html con charset UTF-8.

  • Content-Length: Indica el tamaño del cuerpo de la respuesta en bytes.

  • Cache-Control y Pragma: Controlan el almacenamiento en caché de la respuesta.

  • Vary: El uso de esta cabecera permite al servidor indicar que puede devolver diferentes respuestas con base en ciertos parámetros del request, como Accept-Encoding.

Estas cabeceras permiten manejar aspectos como el almacenamiento de datos, la seguridad, y la presentación del contenido.

curl -v -I http://192.191.151.3/

Utilizando el comando curl, puedes inspeccionar las cabeceras de una respuesta HTTP sin necesidad de descargar el cuerpo completo. En el ejemplo proporcionado, el comando curl -v -I http://192.191.151.3/ realiza una solicitud HEAD al servidor, mostrando exclusivamente las cabeceras HTTP. Esta práctica es útil para verificar la configuración del servidor y depurar problemas sin transferir datos innecesarios.

Las cabeceras HTTP juegan un papel crucial en el manejo de la interacción entre cliente y servidor, y entender sus características permite optimizar el rendimiento de aplicaciones web, mejorar la seguridad y garantizar una experiencia de usuario consistente.

curl -v -X OPTIONS http://192.191.151.3/

En este contexto, la respuesta a una solicitud OPTIONS proporciona información crucial sobre los métodos HTTP permitidos por el servidor, tales como GET, HEAD, y OPTIONS mismos. Esto es vital para asegurar que las aplicaciones que interactúan con el servidor estén alineadas con las capacidades de procesamiento previstas. Al conocer qué solicitudes son aceptadas, los desarrolladores pueden adecuar sus implementaciones para evitar errores y optimizar las interacciones con el servidor.

curl -v -X PUT http://192.191.151.3/

For casos en los que necesitas enviar datos al servidor para actualizar un recurso existente, el método PUT es el adecuado. Utilizando curl, puedes enviar una solicitud PUT de la siguiente manera, para actualizar datos en el recurso especificado por la URL:

curl -v -X PUT -d "param1=value1&param2=value2" http://192.191.151.3/resource

Este comando envía los datos especificados en -d, que puede ser en formato clave-valor o incluso un archivo JSON, dependiendo de lo que el servidor espera. Asegúrate de verificar que el servidor permite las solicitudes PUT revisando la respuesta a una solicitud OPTIONS como se explicó anteriormente.

Si el método no es aceptado por el servidor, recibirás una respuesta con el código de estado HTTP 405 Method Not Allowed. Esta respuesta incluirá una cabecera Allow que enumera los métodos permitidos para el recurso solicitado. Un ejemplo de cómo se vería esta respuesta es:

HTTP/1.1 405 Method Not Allowed
Allow: GET, POST, OPTIONS
Content-Type: text/html
Content-Length: 178
...

<html>
<head><title>405 Method Not Allowed</title></head>
<body>
  <h1>Method Not Allowed</h1>
  <p>The requested method PUT is not allowed for the URL /resource.</p>
</body>
</html>

Es crucial monitorear la respuesta OPTIONS para adaptar tus solicitudes adecuadamente.

Burpsuit

En caso de que se detecte un directorio donde se pueda subir archivos.

dirb http://192.191.151.3

Subiar archivo con malware utilizando curl

curl http://192.191.151.3/uploadse/ --upload-file /usr/share/webshell/php/simple-backdoor.php

Eliminar el archivo que se subió

Quiz: HTTP Basics Lab

HTTPS

Ahora que comprende cómo funciona HTTP, analicemos cómo se protege.

De manera predeterminada, las solicitudes HTTP se envían en texto sin formato (clear-text) y un atacante puede interceptarlas o alterarlas fácilmente durante el camino hacia su destino.

Además, HTTP no proporciona una autenticación sólida entre las dos partes que se comunican.

HTTPS (Hypertext Transfer Protocol Secure) es una versión segura del protocolo HTTP que se utiliza para transmitir datos entre el navegador web de un usuario y un sitio web o una aplicación web.

HTTPS proporciona una capa adicional de seguridad al cifrar los datos transmitidos a través de Internet, lo que los hace más seguros y los protege del acceso no autorizado y la interceptación.

HTTPS también se conoce comúnmente como HTTP Secure.

HTTPS es la forma preferida de usar y configurar HTTP e implica ejecutar HTTP sobre SSL/TLS.

SSL (Secure Sockets Layer) y TLS (Transport Layer Security) son protocolos criptográficos que se utilizan para proporcionar una comunicación segura a través de una red informática, más comúnmente Internet.

Son esenciales para establecer una conexión segura y cifrada entre el navegador web o la aplicación de un usuario y un servidor web.

Esta técnica de capas proporciona confidencialidad, protección de integridad y autenticación al protocolo HTTP.

HTTPS Advantages

Cifrado de datos en tránsito: uno de los principales beneficios de HTTPS es el cifrado de datos durante la transmisión. Cuando los datos se envían a través de una conexión HTTPS, se cifran mediante algoritmos criptográficos sólidos. Esto garantiza que, incluso si un atacante intercepta los datos mientras están en tránsito, no podrá descifrarlos ni leer su contenido.

Protección contra escuchas clandestinas: HTTPS evita que terceros no autorizados puedan espiar los datos intercambiados entre el navegador del usuario y el servidor web. Esto es especialmente crucial cuando los usuarios ingresan información confidencial, como credenciales de inicio de sesión, números de tarjetas de crédito o datos personales.

HTTPS Security Considerations

El protocolo HTTPS no protege contra fallas en aplicaciones web. Diversos ataques a aplicaciones web seguirán funcionando independientemente del uso de SSL/TLS. (Ataques como XSS y SQLi seguirán funcionando)

La capa de cifrado agregada solo protege los datos intercambiados entre el cliente y el servidor y detiene los ataques contra la propia aplicación web.

Quiz: HTTPS

Si modificamos el motodo por Options podemos ver que nos permite que métodos nos permite ejecutar la pagina con el usuario con el que estamos interactuando (anonimo)