Existem indicadores. Alguns são mais fáceis de encontrar, outros são mais difíceis.
- extensões de arquivo:
.php
indica que o site está escrito em PHP,.asp
indica ASP clássico,.aspx
indica ASP.NET,.jsp
indica Java JSPs, ... - nomes de cookies:
JSESSIONID
é um nome de cookie amplamente usado em servidores Java - cabeçalhos: alguns sistemas adicionam cabeçalhos HTTP às suas respostas
- conteúdo HTML específico:
- padrões como lotes de div-wrappers com um esquema consistente de nomenclatura de classes, usado por CMSs como o Drupal.
- comentários no HTML ou meta tags na cabeça direta / indiretamente indicando o uso da ferramenta
- Mensagens de erro padrão ou design de página de erro (por exemplo, fazendo ping de uma URL falsa para ver o 404 deles)
- Às vezes, as tags de comentário são colocadas na página para fins de versão, o que fornece uma pista
- ...
Mas todos eles podem ser removidos / alterados / falsificados. Alguns são mais fáceis de mudar do que outros, mas nenhum é 100% confiável.
Existem vários motivos para alterar esses indicadores:
- Você altera a tecnologia subjacente, mas não quer alterar seus URLs
- Você deseja fornecer o mínimo possível de informações sobre sua tecnologia
- (relacionado a anterior) Você preferiria não ser a primeira parada para o script kiddie bus quando as vulnerabilidades em toda a plataforma forem descobertas / divulgadas
- Você quer parecer "in" (mesmo que, no momento, isso signifique ter URLs no estilo REST sem extensão).
- ...