跳到主要内容
LangChain 拥有庞大的生态系统,集成了各种外部资源,如本地和远程文件系统、API 和数据库。这些集成允许开发人员创建多功能应用程序,将 LLM 的强大功能与访问、交互和操作外部资源的能力相结合。

最佳实践

在构建此类应用程序时,开发人员应记住遵循良好的安全实践
  • 限制权限:将权限范围明确限制在应用程序的需求范围内。授予广泛或过多的权限可能会引入重大的安全漏洞。为避免此类漏洞,请考虑使用只读凭据、禁止访问敏感资源、使用沙盒技术(例如在容器中运行)、指定代理配置以控制外部请求等,具体取决于您的应用程序。
  • 预估潜在滥用:正如人类会犯错一样,大型语言模型 (LLM) 也会犯错。始终假设任何系统访问或凭据都可以以其分配的权限允许的任何方式使用。例如,如果一对数据库凭据允许删除数据,最安全的做法是假设任何能够使用这些凭据的 LLM 实际上都可能删除数据。
  • 纵深防御:没有完美的安全性技术。微调和良好的链设计可以减少,但不能消除,大型语言模型 (LLM) 犯错的可能性。最好结合多种分层安全方法,而不是依赖任何单一防御层来确保安全。例如:同时使用只读权限和沙盒技术,以确保 LLM 只能访问明确供其使用的数据。
不这样做可能导致的风险包括但不限于
  • 数据损坏或丢失。
  • 未经授权访问机密信息。
  • 关键资源的性能或可用性受损。
带有缓解策略的示例场景
  • 用户可能会要求有权访问文件系统的代理删除不应删除的文件或读取包含敏感信息的文件内容。为缓解此问题,请将代理限制为仅使用特定目录,并仅允许其读取或写入可以安全读取或写入的文件。考虑通过在容器中运行代理来进一步沙盒化代理。
  • 用户可能会要求有权写入外部 API 的代理向 API 写入恶意数据,或从该 API 删除数据。为缓解此问题,请向代理提供只读 API 密钥,或将其限制为仅使用已能抵御此类滥用的端点。
  • 用户可能会要求有权访问数据库的代理删除表或修改架构。为缓解此问题,请将凭据范围限制为代理需要访问的表,并考虑颁发只读凭据。
如果您正在构建访问文件系统、API 或数据库等外部资源的应用程序,请考虑与您公司的安全团队沟通,以确定如何最佳地设计和保护您的应用程序。

报告开源项目漏洞

LangChain 与 Protect AI 旗下的 huntr 合作,为我们的开源项目提供漏洞赏金计划。 请在 huntr 上报告与 LangChain 开源项目相关的安全漏洞。 在报告漏洞之前,请查看:
  1. 范围内的目标范围外的目标
  2. langchain-ai/langchain 单体仓库结构。
  3. 上述最佳实践,以了解我们认为什么是安全漏洞以及什么是开发人员责任。

范围内的目标

以下软件包和存储库符合漏洞赏金资格
  • langchain-core
  • langchain(参见例外情况)
  • langchain-community(参见例外情况)
  • langgraph
  • langserve

范围外的目标

所有 huntr 定义的范围外目标以及
  • langchain-experimental:此存储库用于实验性代码,不符合漏洞赏金资格(参见软件包警告),对其的错误报告将被标记为有趣或浪费时间,并发布时不附带赏金。
  • 工具:langchain 或 langchain-community 中的工具不符合漏洞赏金资格。这包括以下目录
    • libs/langchain/langchain/tools
    • libs/community/langchain_community/tools
    • 请查看最佳实践以获取更多详细信息,但通常工具会与现实世界交互。开发人员应了解其代码的安全隐患,并负责其工具的安全性。
  • 带有安全通知的代码。这将根据具体情况决定,但很可能不符合赏金资格,因为代码已记录有开发人员应遵循的指南,以确保其应用程序安全。
  • 任何 LangSmith 相关存储库或 API(参见报告 LangSmith 漏洞)。

报告 LangSmith 漏洞

请通过电子邮件将与 LangSmith 相关的安全漏洞报告至 security@langchain.dev

其他安全问题

对于任何其他安全问题,请通过 security@langchain.dev 联系我们。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.