10+年产品经理聊聊产品、测测产品,产品人交流学习成长平台,按 Ctrl+D 收藏我们
留言板 小程序 交流群 关于我

苏米客

  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
  • 登录
  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源

深入解析Cursor的安全性与功能:官方安全文档中披露的代码检索逻辑

5月前 3868 0

Cursor是一款基于Visual Studio Code(VS Code)的开源项目,它集成了AI功能以提升编程效率。然而,对于任何涉及代码和数据的软件,安全性和隐私保护是用户最关心的问题。

本文将详细梳理Cursor官方安全文档,揭示其基础设施安全、客户端安全、AI请求处理以及代码库索引的工作原理,以增强用户对Cursor安全性的理解。

基础设施安全

Cursor依赖多个子处理器来支持其AI功能(详见 AI 请求部分),包括AWS、Fireworks、OpenAI、Anthropic、Google Cloud Vertex API等。这些服务分布在全球多个地区,以确保服务的稳定性和响应速度。Cursor在隐私模式下不会保留用户的代码数据(详见 隐私模式保证 部分),并且与主要的AI服务提供商有零数据保留协议,确保用户数据的安全。

隐私模式说明(点击查看隐私模式如何影响代码数据的传输)

  • AWS 见代码数据:我们的基础设施主要托管于 AWS。大部分服务器位于美国,部分延迟敏感的服务器位于亚洲(东京)和欧洲(伦敦)的 AWS 区域。

  • Fireworks 见代码数据:我们在 Fireworks 的服务器上托管自定义模型,位于美国、亚洲(东京)和欧洲(伦敦)。如果未启用隐私模式,为加速模型推理,Fireworks 可能会存储一些代码数据。

  • OpenAI 见代码数据:我们依赖许多 OpenAI 的模型来提供 AI 响应。即使在聊天中选择了 Anthropic(或其他)的模型(如用于摘要),请求也可能发送至 OpenAI。我们与 OpenAI 有零数据保留协议。

  • Anthropic 见代码数据:我们依赖许多 Anthropic 的模型来提供 AI 响应。即使在聊天中选择了 OpenAI(或其他)的模型(如用于摘要),请求也可能发送至 Anthropic。我们与 Anthropic 有零数据保留协议。

  • Google Cloud Vertex API 见代码数据:我们依赖一些 Google Cloud 提供的 Gemini 模型来提供 AI 响应。即使在聊天中选择了 OpenAI(或其他)的模型(如用于摘要),请求也可能发送至 Google Cloud Vertex API。

  • Turbopuffer 存储混淆的代码数据:索引代码库的嵌入以及与嵌入相关的元数据(混淆的文件名)存储在位于美国的 Google Cloud 的 Turbopuffer 上。您可以在 Turbopuffer 安全页面 了解更多。用户可以禁用代码库索引;详情请参见本文档的 代码库索引 部分。

  • Exa 和 SerpApi 见搜索请求(可能源于代码数据):用于网页搜索功能。搜索请求可能来源于代码数据(例如,在聊天中使用 "@web" 时,单独的语言模型会根据您的消息、会话历史和当前文件来确定搜索内容,Exa/SerpApi 将看到生成的搜索查询)。

  • MongoDB 不见代码数据:我们使用 MongoDB 存储部分分析数据,适用于未启用隐私模式的用户。

  • Datadog 不接触代码数据:我们使用 Datadog 进行日志记录和监控。如在 隐私模式保证部分 中所述,涉及隐私模式用户的日志不包含任何代码数据。

  • Databricks 不接触代码数据:我们使用 Databricks MosaicML 来训练一些自定义模型。隐私模式用户的数据不会传递到 Databricks。

  • Foundry 不接触代码数据:我们使用 Foundry 来训练一些自定义模型。隐私模式用户的数据不会传递到 Foundry。

  • Slack 不接触代码数据:我们将 Slack 作为内部沟通工具。在内部聊天中,可能会发送非隐私用户的提示片段以便调试。

  • Google Workspace 不接触代码数据:我们使用 Google Workspace 进行协作。在内部邮件中,可能会发送非隐私用户的提示片段以便调试。

  • Pinecone 不接触代码数据:索引文档的嵌入和元数据存储在 Pinecone。这些文档从公共网络中获取。目前我们正将这些迁移到 Turbopuffer。

  • Amplitude 不接触代码数据:我们使用 Amplitude 进行部分数据分析。Amplitude 中不存储代码数据;仅记录事件数据,例如“Cursor Tab 请求次数”。

  • HashiCorp 不接触代码数据:我们使用 HashiCorp Terraform 来管理基础设施。

  • Stripe 不接触代码数据:我们使用 Stripe 处理账单。Stripe 会存储您的个人数据(姓名、信用卡、地址)。

  • Vercel 不接触代码数据:我们使用 Vercel 部署网站。该网站无法访问代码数据。

  • WorkOS 不接触代码数据:我们使用 WorkOS 处理身份验证。WorkOS 可能存储一些个人数据(姓名、电子邮件地址)。

官方说明:

我们的基础设施均不在中国境内。我们没有直接使用任何中国公司作为子处理器,据我们所知,我们的任何子处理器也没有这样做。

我们在分配基础设施访问权限时遵循最低权限原则,并对 AWS 实施多因素身份验证。我们通过网络级控制和秘密管理来限制资源访问。

客户端安全

Cursor作为VS Code的一个分支,继承了其安全性,并定期合并上游代码库的安全更新。它使用ToDesktop平台进行应用分发和自动更新,确保了客户端的安全性。此外,Cursor默认禁用Workspace Trust功能,以避免与隐私模式混淆,用户可以根据需要自行启用。

官方说明:

我们使用 ToDesktop 来分发我们的应用并执行自动更新。多款广泛使用的应用(如 Linear 和 ClickUp)也信任该平台。

我们的应用会向以下域名发送请求,以与我们的后端通信。如果您处于企业代理环境,请将这些域名列入白名单以确保 Cursor 正常运行。

  • ‘api2.cursor.sh’:用于大多数 API 请求。

  • ‘api3.cursor.sh’:用于 Cursor Tab 请求(仅限 HTTP/2)。

  • ‘repo42.cursor.sh’:用于代码库索引(仅限 HTTP/2)。

  • ‘api4.cursor.sh’,‘us-asia.gcpp.cursor.sh’,‘us-eu.gcpp.cursor.sh’,‘us-only.gcpp.cursor.sh’:根据您所在位置用于 Cursor Tab 请求(仅限 HTTP/2)。

  • ‘marketplace.cursorapi.com’,‘cursor-cdn.com’:用于从扩展市场下载扩展。

  • ‘download.todesktop.com’:用于检查和下载更新。

需要注意的一个与 VS Code 不同的安全特性:

  1. Workspace Trust 在 Cursor 中默认是禁用的。您可以在 Cursor 设置中将 ‘security.workspace.trust.enabled’ 设置为 ‘true’ 来启用它。默认禁用是为了避免 Workspace Trust 的 "限制模式" 与 Cursor 的 "隐私模式" 之间的混淆,并且因为其信任属性较为复杂难以理解(例如,即使启用了 Workspace Trust,您也不会受到恶意扩展的保护,只会避免恶意文件夹的影响)。我们欢迎社区对是否应默认启用 Workspace Trust 提出反馈。

AI请求处理

Cursor在提供功能时会向服务器发送AI请求,这些请求可能包含上下文信息,如最近查看的文件、对话记录和代码片段。这些数据会被发送到AWS基础设施,并转发至相应的语言模型推理提供商。即使用户配置了自己的API密钥,请求也会先经过Cursor的基础设施。

官方说明:

目前,我们尚不支持直接从 Cursor 应用连接到您的企业部署的 OpenAI/Azure/Anthropic,因为我们的提示构建是在服务器上进行的,并且 Fireworks 上的自定义模型对于提供良好的用户体验至关重要。我们还没有提供自托管的服务器部署选项。

您拥有所有由 Cursor 生成的代码的所有权。

代码库索引

Cursor允许用户对代码库进行语义索引,以提供更准确的代码建议和问题解答。索引功能默认启用,但用户可以在设置中关闭。索引过程中,Cursor会计算文件的哈希值并同步到服务器,仅上传更改的文件。服务器上的文件会被分块和嵌入,存储在TurboPuffer中,而不会存储明文代码。

官方说明:

我们的代码库索引功能工作原理如下:启用时,它会扫描您在 Cursor 中打开的文件夹,并计算所有文件的哈希组成的 Merkle 树。‘.gitignore’ 或 ‘.cursorignore’ 中指定的文件和子目录会被忽略。然后将 Merkle 树同步到服务器。每 10 分钟检查一次哈希是否匹配,并利用 Merkle 树确定更改的文件,仅上传那些文件。

在我们的服务器上,我们对文件进行分块和嵌入,并将嵌入存储在 Turbopuffer 中。为允许按文件路径筛选向量搜索结果,我们为每个向量存储了一个混淆的相对文件路径,以及与分块对应的行范围。我们还在 AWS 缓存中按分块的哈希值索引嵌入,以确保第二次索引相同的代码库时速度更快(这对团队尤其有用)。

在推理阶段,我们计算一个嵌入,让 Turbopuffer 执行最近邻搜索,将混淆后的文件路径和行范围发送回客户端,并在客户端本地读取这些文件块。然后,我们将这些块发送回服务器以回答用户的问题。这意味着没有明文代码存储在我们的服务器或 Turbopuffer 中。

一些注意事项:

  • 虽然 ‘.cursorignore’ 文件可以防止文件被索引,但这些文件可能仍会包含在 AI 请求中,例如当您最近查看了一个文件并随后在聊天中提出问题时。我们正在考虑增加 ‘.cursorban’ 文件来应对希望阻止文件在任何请求中被发送的场景——如果您对此功能感兴趣,请在论坛发帖或通过 hi@cursor.com 联系我们。

  • 文件路径混淆细节:路径通过 ‘/’ 和 ‘.’ 拆分,并使用存储在客户端的密钥和一个确定性的 6 字节短随机数对每个片段加密。这泄露了目录层级结构的一些信息,且会有一些随机数冲突,但隐藏了大部分信息。

  • 嵌入反转:学术研究表明,在某些情况下可以反转嵌入。当前攻击依赖于访问模型并将短字符串嵌入大向量中,这让我们认为在此情境下执行这种攻击较为困难。不过,如果有对手突破我们的向量数据库,他们可能会对被索引的代码库有一定了解。

  • 当在 Git 仓库中启用代码库索引时,我们还会索引 Git 历史记录。具体来说,我们存储提交 SHA、父信息和混淆的文件名(与上述相同)。为允许在同一 Git 仓库和团队中共享数据结构,文件名混淆的密钥从最近提交内容的哈希派生。提交消息和文件内容或差异不会被索引。

  • 我们的索引功能通常承受较大负载,这可能导致许多请求失败。这意味着有时文件需要多次上传才能完全被索引。此问题的一种表现是,如果您查看 ‘repo42.cursor.sh’ 的网络流量,可能会看到超出预期的带宽使用情况。

总结

Cursor作为一款集成AI功能的编程工具,其安全性和隐私保护措施是其核心优势之一。通过详细的安全文档,Cursor向用户展示了其在基础设施、客户端、AI请求和代码库索引方面的安全实践。用户可以根据自己的需求和安全偏好,选择是否使用Cursor的特定功能,如隐私模式和代码库索引。随着技术的不断进步,Cursor也在不断优化其安全性能,为用户提供更安全、更高效的编程体验。

声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
#Cursor #安全文档 
收藏 1
推荐阅读
  • 还在边用Cursor生成代码,边修BUG?AI编程避坑指南:10个技巧让Cursor生成精准代码
  • Cursor上线 Deeplinks:一键安装MCP的正确打开方式,Deeplinks功能详解
  • 每周30小时深入使用Cursor后,关于Cursor Agent最佳实践与工作流程分享
  • Cursor 定价更新,免费计划缩水!无限续杯将成过去?
  • Cursor新手3分钟快速搞懂 Ask/Manual/Agent 三种模式及高级技巧
评论 (0)
请登录后发表评论
分类精选
Cursor 0.46更新,新增支持Claude 3.7 + GPT 4.5,Cursor Pro 无限续杯攻略,全自动化工具使用说明
8355 3月前
Cursor代码生成器中文使用教程,Cursor新手入门完全指南,全网最全面详细的Cursor使用教程
6591 5月前
学生党0元白嫖!手把手教你解锁Cursor Pro年VIP,超详细申请教程(附避坑指南)
5847 1月前
深入解析Cursor的安全性与功能:官方安全文档中披露的代码检索逻辑
3869 5月前
手把手教你上手Cursor安装使用,搭配神级Prompt(Thinking Claude),零基础实战开发谷歌插件小游戏
3075 6月前
Cursor 0.47.x更新必看:新增rules、mcp、auto model、主题等,附Cursor免费攻略合集,GitHub开源项目方案大全
2148 2月前
Cursor 0.47 更新Claude 3.7 的 Max 模式,支持长达 200k 上下文,这钱花的值不值
1794 2月前
Cursor新手3分钟快速搞懂 Ask/Manual/Agent 三种模式及高级技巧
1670 4周前
Cursor v0.48 重大更新,抢先体验自定义模式、聊天选项卡、声音通知、定价可见等
1656 2月前
深度解读Cursor首席设计师12条黄金法则,让Cursor写出高质量代码,丝滑到起飞!
1573 1月前

文章目录

关注「苏米客」公众号

订阅推送更及时,手机查看更方便
分类排行
1 Cursor上线 Deeplinks:一键安装MCP的正确打开方式,Deeplinks功能详解
2 MCP Feedback Enhanced:从一句提示词到交互反馈MCP,拯救你的Cursor额度
3 Cursor Notepads 到底该怎么用?这份Cursor Notepads 深度使用指南收好!
4 Cursor-Free-Everyday:完全免费的 Cursor 助手工具, Cursor pro 无限白嫖的开源软件
5 憋了个大招!跳过 0.51,Cursor 1.0 正式发布:BugBot、Background Agent、MCP一键安装全面上线!
6 用 Cursor 搭配 Context7,让 AI 自动看文档、写对代码的神级MCP插件
7 Cursor 0.51版本抢先体验:界面焕新,接入deepseek-r1-0528,推出Memories、Background Agents
8 Cursor-Pro:一键解锁Claude限制的开源工具,这个Cursor小工具太实用了
9 Cursor + Git: 用Cursor AI 搭建智能化 Git 协同
10 Cursor 提示词技巧:这三个核心要素,让你的开发效率翻倍!
©2015-2024 苏米客XMSUMI 版权所有 · WWW.XMSUMI.COM 闽ICP备14005900号-6
免费影视APP 花式玩客 免费字体下载 产品经理导航 Axure RP 10 免费Axure模板 Axure原型设计 Axure元件库下载 原创Axure模板 申请友联