HTTP - Segurança
HTTP é usado para comunicações pela Internet, portanto, desenvolvedores de aplicativos, provedores de informações e usuários devem estar cientes das limitações de segurança em HTTP / 1.1. Esta discussão não inclui soluções definitivas para os problemas mencionados aqui, mas faz algumas sugestões para reduzir os riscos de segurança.
Vazamento de informações pessoais
Os clientes HTTP geralmente têm acesso a uma grande quantidade de informações pessoais, como nome do usuário, localização, endereço de e-mail, senhas, chaves de criptografia, etc. Portanto, você deve ter muito cuidado para evitar o vazamento não intencional dessas informações por meio do protocolo HTTP para outras fontes.
Todas as informações confidenciais devem ser armazenadas no servidor de forma criptografada.
Revelar a versão de software específica do servidor pode permitir que a máquina servidor se torne mais vulnerável a ataques contra software que é conhecido por conter brechas de segurança.
Os proxies que funcionam como um portal por meio de um firewall de rede devem tomar precauções especiais com relação à transferência de informações de cabeçalho que identificam os hosts atrás do firewall.
As informações enviadas no campo 'De' podem entrar em conflito com os interesses de privacidade do usuário ou a política de segurança de seu site e, portanto, não devem ser transmitidas sem que o usuário seja capaz de desabilitar, habilitar e modificar o conteúdo do campo.
Os clientes não devem incluir um campo de cabeçalho Referer em uma solicitação HTTP (não segura), se a página de referência foi transferida com um protocolo seguro.
Os autores de serviços que usam o protocolo HTTP não devem usar formulários baseados em GET para o envio de dados confidenciais, pois isso fará com que os dados sejam codificados no Request-URI.
Ataque baseado em nomes de arquivo e caminho
O documento deve ser restrito aos documentos retornados por solicitações HTTP para serem apenas aqueles que foram pretendidos pelos administradores do servidor.
Por exemplo, UNIX, Microsoft Windows e outros sistemas operacionais usam '..'como um componente de caminho para indicar um nível de diretório acima do atual. Em tal sistema, um servidor HTTP DEVE desautorizar qualquer construção no Request-URI, se de outra forma permitir o acesso a um recurso fora daqueles que deveriam ser acessíveis através do servidor HTTP.
Spoofing de DNS
Os clientes que usam HTTP dependem muito do Serviço de Nomes de Domínio e, portanto, geralmente estão sujeitos a ataques de segurança com base na má associação deliberada de endereços IP e nomes DNS. Portanto, os clientes precisam ter cuidado ao assumir a validade contínua de uma associação de número IP / nome DNS.
Se os clientes HTTP armazenam em cache os resultados das pesquisas de nome de host para obter uma melhoria de desempenho, eles devem observar as informações de TTL relatadas pelo DNS. Se os clientes HTTP não observarem essa regra, eles poderão ser falsificados quando o endereço IP de um servidor acessado anteriormente for alterado.
Cabeçalhos de localização e spoofing
Se um único servidor oferece suporte a várias organizações que não confiam umas nas outras, ele DEVE verificar os valores dos cabeçalhos Location e Content Location nas respostas que são geradas sob o controle dessas organizações para se certificar de que elas não tentem invalidar os recursos que eles não têm autoridade.
Credenciais de autenticação
Clientes HTTP e agentes de usuário existentes normalmente retêm informações de autenticação indefinidamente. O HTTP / 1.1 não fornece um método para um servidor direcionar os clientes para descartar essas credenciais em cache, o que é um grande risco de segurança.
Existem várias soluções alternativas para as partes desse problema e, portanto, é recomendável fazer o uso de proteção por senha em protetores de tela, tempos limite de inatividade e outros métodos que atenuem os problemas de segurança inerentes a esse problema.
Proxies e Cache
Os proxies HTTP são intermediários e representam uma oportunidade para ataques intermediários. Os proxies têm acesso a informações relacionadas à segurança, informações pessoais sobre usuários individuais e organizações e informações proprietárias pertencentes a usuários e provedores de conteúdo.
Os operadores de proxy devem proteger os sistemas nos quais os proxies são executados, pois protegem qualquer sistema que contenha ou transporte informações confidenciais.
Os proxies de cache fornecem vulnerabilidades potenciais adicionais, uma vez que o conteúdo do cache representa um alvo atraente para exploração maliciosa. Portanto, o conteúdo do cache deve ser protegido como informação sensível.