EasyScan 是一个 Python 脚本,通过检查网站的 HTTP 头部、DNS 记录及其他配置来分析其安全性。该脚本会生成一份安全报告,包含评分、等级以及针对潜在漏洞的修复建议。
该脚本涵盖以下测试项:
Referrer-Policy 头部及 meta 标签。/admin、/wp-admin、/phpmyadmin、/cpanel)。/images、/uploads、/files 等)是否暴露目录列表。Set-Cookie 头部是否包含 Secure、HttpOnly、SameSite 属性以及 __Secure-/__Host- 前缀。Server、X-Powered-By、X-AspNet-Version 头部。Access-Control-Allow-Origin 设置以及通配符与凭据的冲突。Content-Type 头部缺失。robots.txt 中可能敏感的禁止路径。OPTIONS 请求以检测危险动词(TRACE、DELETE、PUT、CONNECT)。.git/config、.env、.htaccess、backup.sql、wp-config.php.bak 等。<script> 和 <link> 标签是否缺少 integrity 属性。http:// 资源 URL。X-Frame-Options 和 CSP 的 frame-ancestors 是否提供点击劫持防护。Host 头部是否在重定向或响应体中回显。url、next、redirect、return 等)是否存在开放重定向漏洞。EasyScan 需要 Python 3.6+ 及以下库:
requestsbeautifulsoup4dnspythoncertifi你可以使用提供的 requirements.txt 文件安装这些依赖:
pip install -r requirements.txt
使用 EasyScan 脚本的步骤如下:
easyscan.py 文件。pip install -r requirements.txt
python3 easyscan.py [url]
你可以将 URL 作为命令行参数传入,或在提示时输入。| 标志 | 描述 |
|---|---|
url | 位置参数。要扫描的 URL(例如 example.com 或 https://example.com)。 |
--json | 以 JSON 格式输出结果到标准输出。 |
--output FILE / -o FILE | 将报告保存到指定文件。 |
--timeout SECS / -t SECS | 设置请求超时时间(秒,默认:10)。 |
--verbose / -v | 启用调试级日志输出。 |
基础扫描:
python3 easyscan.py example.com
扫描并输出 JSON 到文件:
python3 easyscan.py example.com --json --output report.json
设置较长超时并启用详细日志:
python3 easyscan.py https://example.com --timeout 20 --verbose
使用 --json 标志获取结构化的 JSON 输出,便于与其他工具集成:
python3 easyscan.py example.com --json
JSON 报告包含一个 score 对象,内含总评分(0-100)、字母等级(A-F)、严重程度计数以及所有发现项。
================================================================================================================================================================
安全报告
================================================================================================================================================================
头部名称 状态 严重程度 修复建议
================================================================================================================================================================
[CRI] SSL/TLS 缺失 严重 站点未使用 HTTPS。实施 SSL/TLS 以加密传输数据。
[HI] 点击劫持 无保护 高 设置 'X-Frame-Options: DENY' 或 CSP 'frame-ancestors' 指令以防止点击劫持。
[HI] 公共管理页面 (/admin) 可访问 高 限制 /admin 仅允许特定 IP 地址访问并/或启用身份验证。
[MED] Content-Security-Policy 缺失 中 实施内容安全策略 (CSP) 以防止 XSS 和代码注入攻击。
[MED] Strict-Transport-Security 缺失 中 实施严格传输安全 (HSTS) 以强制使用安全连接。
[MED] Permissions-Policy 缺失 中 设置 'Permissions-Policy' 头部以限制浏览器功能(摄像头、麦克风、地理位置)。
[LOW] SPF 记录 缺失 低 在域名的 DNS 设置中添加 SPF 记录,有助于防止邮件伪造。
[INF] Meta Referrer 缺失 低 添加包含 'no-referrer' 的 'referrer' META 标签,防止泄露引用者信息。
============================================================
安全评分:55/100(等级:C)
============================================================
总问题数 : 8
严重 : 1
高 : 2
中 : 4
低 : 1
信息 : 0
============================================================
请注意,该脚本可能无法覆盖所有安全场景,建议对您的网站进行全面的安全评估。
EasyScan 也可在 https://easyscan.onrender.com/ 上访问。
如有任何疑问或需要全面的安全审计,请在 Twitter @0xdevrel 上联系。