Estas seqüências de bytes em seus logs se parecem com o início dos pacotes de saudação do cliente SSL versão 2 e resultam de alguns clientes HTTPS conectando-se a uma porta em que seu servidor da Web espera HTTP simples, não HTTPS. Seu servidor da Web tenta interpretar o início do handshake SSL como o método de solicitação HTTP.
Então você tem dois problemas aqui:
- Alguém tenta falar HTTPS com uma porta na qual seu servidor da Web espera HTTP. Isso pode ser uma configuração incorreta de seu servidor (por exemplo, você adicionou uma diretiva
Listen 443
, mas não habilitou HTTPS corretamente) ou apenas o resultado de verificações de porta de robôs estúpidos que tentam HTTPS em portas não padrão. Ou isso pode ser causado por um erro de configuração do cliente (algo como link pode resultar em tal comportamento). - Seu servidor, por algum motivo, responde com o código de status 200 a solicitações com um método falso. Enquanto o próprio Apache não deve lidar com tais métodos desconhecidos, o PHP aceita tudo e passa a requisição para o script. Juntamente com algumas regras de reescrita que fazem com que a solicitação de arquivos inexistentes seja passada para
index.php
(comumente usado para obter “URLs limpas”) e scripts que não verificam$_SERVER['REQUEST_METHOD']
, isso pode resultar no comportamento que você vê aqui. >
E se os clientes que enviam essas solicitações forem controlados por você, você terá um terceiro problema - esses clientes estão usando o protocolo SSL v2 obsoleto e inseguro (eles anunciam suporte para SSL versão 3.1, que na verdade é TLS 1.0, mas seria aceitar respostas SSL v2 do servidor, para que elas fiquem vulneráveis a um ataque de downgrade de protocolo devido à falta de proteção de integridade para o handshake no SSL v2).