HTTP: seguridad
HTTP se utiliza para las comunicaciones a través de Internet, por lo que los desarrolladores de aplicaciones, los proveedores de información y los usuarios deben conocer las limitaciones de seguridad de HTTP / 1.1. Esta discusión no incluye soluciones definitivas a los problemas mencionados aquí, pero sí hace algunas sugerencias para reducir los riesgos de seguridad.
Fuga de información personal
Los clientes HTTP suelen tener acceso a una gran cantidad de información personal, como el nombre del usuario, la ubicación, la dirección de correo electrónico, las contraseñas, las claves de cifrado, etc. Por lo tanto, debe tener mucho cuidado para evitar la filtración involuntaria de esta información a otras fuentes a través del protocolo HTTP.
Toda la información confidencial debe almacenarse en el servidor en forma cifrada.
Revelar la versión de software específica del servidor podría permitir que la máquina del servidor se vuelva más vulnerable a ataques contra software que se sabe que contiene agujeros de seguridad.
Los servidores proxy que sirven como portal a través de un firewall de red deben tomar precauciones especiales con respecto a la transferencia de información de encabezado que identifica a los hosts detrás del firewall.
La información enviada en el campo 'De' puede entrar en conflicto con los intereses de privacidad del usuario o la política de seguridad de su sitio y, por lo tanto, no debe transmitirse sin que el usuario pueda deshabilitar, habilitar y modificar el contenido del campo.
Los clientes no deben incluir un campo de encabezado Referer en una solicitud HTTP (no segura), si la página de referencia se transfirió con un protocolo seguro.
Los autores de servicios que utilizan el protocolo HTTP no deben utilizar formularios basados en GET para el envío de datos confidenciales, ya que provocará que los datos se codifiquen en el Request-URI.
Ataque basado en nombres de archivos y rutas
El documento debe restringirse a los documentos devueltos por solicitudes HTTP para que sean solo aquellos que fueron previstos por los administradores del servidor.
Por ejemplo, UNIX, Microsoft Windows y otros sistemas operativos utilizan '..'como un componente de ruta para indicar un nivel de directorio por encima del actual. En un sistema de este tipo, un servidor HTTP DEBE rechazar dicha construcción en el Request-URI, si de otra manera permitiría el acceso a un recurso fuera de aquellos destinados a ser accesibles a través del servidor HTTP.
Suplantación de DNS
Los clientes que usan HTTP dependen en gran medida del Servicio de nombres de dominio y, por lo tanto, generalmente son propensos a ataques de seguridad basados en la asociación incorrecta deliberada de direcciones IP y nombres DNS. Por lo tanto, los clientes deben tener cuidado al asumir la validez continua de una asociación de nombre DNS / número IP.
Si los clientes HTTP almacenan en caché los resultados de las búsquedas de nombres de host para lograr una mejora del rendimiento, deben observar la información TTL reportada por el DNS. Si los clientes HTTP no observan esta regla, podrían ser falsificados cuando cambie la dirección IP de un servidor al que se haya accedido anteriormente.
Encabezados de ubicación y suplantación de identidad
Si un solo servidor admite varias organizaciones que no confían entre sí, DEBE verificar los valores de los encabezados de Ubicación y Ubicación de contenido en las respuestas que se generan bajo el control de dichas organizaciones para asegurarse de que no intenten invalidar recursos sobre que no tienen autoridad.
Credenciales de autenticación
Los agentes de usuario y los clientes HTTP existentes suelen conservar la información de autenticación de forma indefinida. HTTP / 1.1 no proporciona un método para que un servidor dirija a los clientes a descartar estas credenciales almacenadas en caché, lo que representa un gran riesgo de seguridad.
Hay una serie de soluciones para las partes de este problema, por lo que se recomienda utilizar la protección con contraseña en los protectores de pantalla, los tiempos de espera inactivos y otros métodos que mitiguen los problemas de seguridad inherentes a este problema.
Proxies y caché
Los proxies HTTP son hombres en el medio y representan una oportunidad para los ataques de intermediarios. Los apoderados tienen acceso a información relacionada con la seguridad, información personal sobre usuarios individuales y organizaciones, e información de propiedad que pertenece a usuarios y proveedores de contenido.
Los operadores de proxy deben proteger los sistemas en los que se ejecutan los proxies, ya que protegerían cualquier sistema que contenga o transporte información confidencial.
Los proxies de caché proporcionan vulnerabilidades potenciales adicionales, ya que el contenido de la caché representa un objetivo atractivo para la explotación malintencionada. Por lo tanto, el contenido de la caché debe protegerse como información confidencial.