Scanner de segurança web em Python que analisa os headers HTTP de resposta de um site e identifica vulnerabilidades de configuração.
O script faz uma requisição HTTP para uma URL informada e verifica se os principais headers de segurança estão presentes na resposta do servidor. Cada header ausente representa uma vulnerabilidade real que pode ser explorada por atacantes.
Muitos sites, inclusive grandes empresas, não configuram corretamente os headers de segurança HTTP. Essa falha abre brechas para ataques como:
- Clickjacking: quando
X-Frame-Optionsestá ausente - XSS (Cross-Site Scripting): quando
Content-Security-Policyestá ausente - Interceptação de conexão (MITM): quando
Strict-Transport-Securityestá ausente - Vazamento de URLs sensíveis: quando
Referrer-Policyestá ausente - Execução de arquivos maliciosos: quando
X-Content-Type-Optionsestá ausente
| Header | O que protege |
|---|---|
Strict-Transport-Security |
Garante que o navegador sempre use HTTPS, nunca HTTP puro |
X-Frame-Options |
Impede que o site seja carregado em iframe de outro site (clickjacking) |
X-Content-Type-Options |
Impede o navegador de adivinhar o tipo de um arquivo malicioso |
Content-Security-Policy |
Define de onde o site pode carregar recursos — defesa contra XSS |
Referrer-Policy |
Controla quanta informação é enviada ao navegar para outro site |
- Python 3.13
- Biblioteca
requests
1. Clone o repositório
git clone https://github.com/PedroDGranato/HTTP-Security-Scanner-.git
cd http-security-scanner2. Instale as dependências
pip install -r requirements.txt3. Rode o scanner
python scanner.pyAnalisando: https://linkedin.com
Status: 200
OK Strict-Transport-Security
OK X-Frame-Options
OK X-Content-Type-Options
OK Content-Security-Policy
AUSENTE Referrer-Policy
Analisando: https://netflix.com
Status: 200
OK Strict-Transport-Security
OK X-Frame-Options
OK X-Content-Type-Options
AUSENTE Content-Security-Policy
AUSENTE Referrer-Policy
O scanner gera um relatório HTML com cores para cada nota da url analisada:
- Verde — header presente e configurado
- Laranja — header ausente
- Vermelho — risco associado à ausência
O scanner salva automaticamente um arquivo .html para cada análise na pasta relatorios/, com o nome no formato dominio_data_hora.html.
Pedro Granato — graduado em ADS pelo IFSP, estudante de cibersegurança.
GitHub


