利用正则表达式和AI发现隐藏的网站API端点

💡 用途说明

该工作流通过分析网站HTML代码中的JavaScript文件,帮助自动发现未公开的API端点。

在为没有公开API的平台构建自动化时,我们会面临重大技术障碍。理想情况下,每个服务都应提供文档完善的API,包含清晰的端点和认证方法。但现实往往并非如此。

在采用复杂的网络爬取之前,让我们先分析平台架构,检查它是否进行了内部API调用。我们将检查HTML源代码中嵌入的JavaScript文件,寻找并提取潜在的API端点。

⚙️核心功能

要发现隐藏的API端点,我们可以采用两种主要方法:

1. 预定义正则表达式提取:手动插入带有必要条件的固定正则表达式来提取端点。与LLM为每个JS文件创建自定义正则表达式不同,我们提供一个通用表达式来捕获所有URL字符串。我们不希望意外遗漏重要的API端点。

2. AI辅助提取:

  • 让LLM检查JavaScript代码结构。第一个模型将:
  • 捕获潜在的API端点
  • 为每个识别的端点创建详细描述,包括方法和查询参数
  • 连接到AI代理的第二个LLM将根据第一个模型的输出,为每个JS文件单独生成正则表达式。

除了纯粹的端点提取外,我们还通过以下方式补充分析:

  • AI正则表达式验证:AI代理调用验证工具,根据参考数据迭代改进其正则表达式。

  • 结果比较:将使用预定义正则表达式提取的API端点与AI辅助结果进行并排分析。

✅要求:

  • OpenRouter API访问:用于AI驱动的分析(默认使用Gemini和Claude模型)
  • 最小化设置:只需配置目标URL并运行
  • 平台:JS文件必须可访问,并包含嵌入式标准API端点模式(/api/、/v1/等)

💪使用场景

📚 API文档:为内部API创建完整的端点描述
🚀 自动化和集成项目:在缺少官方文档时找到所需API
🛠 网络爬取项目:发现数据访问模式
🔍 安全研究:绘制攻击面并探索未受保护的端点

🎉提取端点后,接下来做什么?

要执行API请求,我们通常需要额外信息,如查询参数或JSON正文数据:

  • 一种方法是,在与平台交互时,导航到Dev Tools控制台的Network选项卡,查找类似API请求的内容,并检查请求/响应头、负载和查询参数。
  • 或者,你也可以检查JS文件和页面源代码以获取所需值。

✨灵感来源

作为一名同时构建工作流的吉他手,我想自动化与我在音乐项目中使用的预订平台的通信。在尝试从n8n连接到该平台时,我遇到了一个挑战:没有公开API。

幸运的是,我发现我使用的平台是作为一个现代Web应用构建的,客户端JavaScript包含了有关API结构的信息。这让我想到了隐藏API端点的主题,并最终形成了这个工作流。

这是我音乐预订项目的一部分,我在2025年5月22日柏林n8n社区见面会上展示过。

(0)
上一篇 3天前
下一篇 3天前

更多相关内容

从零掌握 AI + MCP/Responses API 的自动化设计,节省90%的时间和成本,成为AI自动化专家。学会 n8n、Coze、Dify 接入全球领先 AI应用生态,打造属于你的 AI智能工作流。