一个基于Google Gemini AI的JavaScript代码安全分析工具,支持从网站提取JS文件或分析本地JS文件,并生成详细的安全分析报告。

Aining777/js-security-analyzer: 本项目是一个基于 Python 的命令行工具,利用 Google Gemini API 对 JavaScript (JS) 代码进行自动化安全分析。它支持从本地文件、本地目录或远程网站 URL 中获取 JS 代码,并能够处理超长代码,将其分块发送给 AI 进行分析,最后生成结构清晰、内容详尽的 HTML 报告。该工具旨在帮助开发者和安全研究人员快速识别 JS 代码中潜在的安全漏洞、不当的编码实践和性能问题。

功能特点

  • 🔍 多种分析模式:支持网站JS文件提取、本地文件选择、目录扫描

  • 🤖 AI驱动分析:使用Google Gemini AI进行深度代码安全分析

  • 📊 智能分块处理:自动处理大型JS文件,支持分块分析

  • 📄 HTML报告生成:生成美观的HTML格式分析报告

  • 🛡️ 反爬虫机制:内置随机User-Agent和延迟机制

  • 🔧 灵活配置:通过配置文件自定义分析参数

  • 🌐 代理支持:支持HTTP/HTTPS代理配置

安装要求

Python版本

  • Python 3.7+

依赖包

pip install -r requirements.txt

或手动安装:

pip install configparser requests beautifulsoup4 google-generativeai markdown2 urllib3

系统要求

  • 支持tkinter的Python环境(用于GUI文件选择)

  • 网络连接(用于访问Gemini API)

配置设置

1. 获取Gemini API Key

  1. 访问 Google AI Studio

  2. 创建新的API密钥

  3. 将API密钥填入 config.ini 文件的 api_key 字段

2. 配置代理(可选)

如果需要使用代理访问Gemini API,请在配置文件中设置代理信息。

使用方法

启动程序

python main.py

选择分析模式

程序启动后会提示选择分析模式:

  1. 从网站URL提取JS文件

    • 输入网站URL

    • 自动提取页面中的所有JS文件链接

    • 获取文件大小信息

  2. 选择本地JS文件

    • 通过GUI文件选择器选择特定JS文件

    • 支持多文件选择

  3. 选择本地目录扫描JS文件

    • 通过GUI选择目录

    • 递归扫描目录中的所有JS文件

  4. 当前目录扫描JS文件

    • 自动扫描当前工作目录

    • 包含子目录中的JS文件

选择要分析的文件

  • 输入文件编号(用逗号分隔)

  • 或输入 all 分析所有文件

查看分析结果

  • 分析完成后会生成HTML报告

  • 报告保存在 reports 目录中

  • 可选择在浏览器中直接打开报告

项目结构

js-security-analyzer/
├── main.py                 # 主程序文件
├── config.ini              # 配置文件
├── requirements.txt        # 依赖包列表
├── README.md              # 说明文档
└── reports/               # 生成的分析报告目录
    ├── report_*.html      # HTML格式的分析报告
    └── ...

配置文件详解

[Gemini] 部分

  • api_key: Gemini API密钥

  • model: 使用的AI模型(推荐 gemini-pro)

  • max_chunk_size: 单次分析的最大字符数

[Proxy] 部分

  • type: 代理类型(http/https)

  • host: 代理服务器地址

  • port: 代理端口

[Prompt] 部分

  • custom_prompt: 主分析提示模板

  • chunk_prompt: 分块分析提示模板

  • summary_prompt: 总结分析提示模板

安全特性

反爬虫机制

  • 随机User-Agent轮换

  • 请求间随机延迟

  • 完整的HTTP头模拟

SSL/TLS处理

  • 自动处理SSL证书问题

  • 支持自签名证书

  • 可配置的SSL验证

文件处理

  • 多编码支持(UTF-8, GBK, Latin-1)

  • 安全的文件名生成

  • 文件大小检查和格式化

输出报告

HTML报告特点

  • 响应式设计

  • 代码高亮显示

  • 表格和图表支持

  • 文件信息摘要

  • 时间戳记录

报告内容

  • 代码安全漏洞分析

  • 潜在风险评估

  • 改进建议

  • 详细的技术分析

故障排除

常见问题

  1. API密钥错误

    错误: 请在 config.ini 文件中配置您的Gemini API key。
    

    解决:检查配置文件中的API密钥是否正确

  2. 网络连接问题

    调用Gemini API时出错: ...
    

    解决:检查网络连接和代理设置

  3. 文件读取错误

    读取文件时出错: ...
    

    解决:检查文件路径和权限

  4. SSL证书问题 程序已内置SSL证书问题的处理机制

调试模式

程序包含详细的错误日志和异常处理,可以通过控制台输出查看详细信息。

注意事项

  1. API配额限制:注意Gemini API的使用配额

  2. 文件大小限制:超大文件会自动分块处理

  3. 网络安全:建议在安全的网络环境中使用

  4. 隐私保护:分析的代码会发送到Gemini API

更新日志

v1.0.0

  • 初始版本发布

  • 支持多种分析模式

  • 集成Gemini AI分析

  • HTML报告生成

  • 反爬虫机制

v1.0.1

  • 美化HTML报告模板