Aprendizagem pessoal com IA
e orientação prática

Lógica de recuperação de código divulgada na documentação oficial de segurança do Cursor

Segurança da infraestrutura

Contamos com os seguintes subprocessadores, listados em ordem decrescente de importância. Observe que os dados de código são carregados em nossos servidores para dar suporte ao Cursor Todos os recursos de IA (consulte Componente de solicitação de IA), enquanto no modo de privacidade os dados de código do usuário não são mantidos (para obter detalhes, consulte Garantia do modo de privacidade (Parcial).

O Modo de privacidade está ativado (clique para ver como o Modo de privacidade afeta a transmissão de dados de código)

  • AWS Veja os dados do código: nossa infraestrutura é hospedada principalmente no AWS. A maioria dos servidores está localizada nos EUA, com alguns servidores sensíveis à latência localizados em regiões do AWS na Ásia (Tóquio) e na Europa (Londres).
  • Fogos de artifício Consulte Dados do código: hospedamos modelos personalizados nos servidores do Fireworks nos EUA, na Ásia (Tóquio) e na Europa (Londres). Se o modo de privacidade não estiver ativado, o Fireworks poderá armazenar alguns dados de código para acelerar a inferência do modelo.
  • OpenAI Consulte os dados do código: contamos com muitos dos modelos da OpenAI para fornecer respostas de IA. As solicitações podem ser enviadas à OpenAI mesmo que o modelo do Anthropic (ou outro) seja selecionado no bate-papo (por exemplo, para resumo).
  • Antrópica Consulte os dados do código: contamos com muitos Antrópica Temos um contrato de retenção de dados zero com a Anthropic. As solicitações podem ser enviadas ao Anthropic mesmo que um modelo OpenAI (ou outro) seja selecionado no bate-papo (por exemplo, para resumo).
  • API do Google Cloud Vertex Consulte os dados do código: contamos com alguns dados fornecidos pelo Google Cloud Gêmeos para fornecer a resposta de IA. As solicitações podem ser enviadas para a API do Google Cloud Vertex mesmo que um modelo OpenAI (ou outro) seja selecionado no chat (por exemplo, para resumo).
  • Turbopuffer Armazenamento de dados de código ofuscado: as incorporações de bases de código indexadas e os metadados (nomes de arquivos ofuscados) associados às incorporações são armazenados no Turbopuffer no Google Cloud, localizado nos Estados Unidos. Você pode encontrar mais informações sobre os dados de código ofuscado na seção Página de segurança do Turbopuffer Saiba mais. Os usuários podem desativar a indexação da base de código; para obter detalhes, consulte a seção Índice da base de código Parte.
  • Exa responder cantando SerpApi Consulte Solicitações de pesquisa (que podem se originar de dados de código): para a funcionalidade de pesquisa na Web. As solicitações de pesquisa podem se originar de dados de código (por exemplo, ao usar "@web" em um bate-papo, um modelo de linguagem separado determina o que pesquisar com base em suas mensagens, histórico de sessão e documentos atuais, e o Exa/SerpApi verá a consulta de pesquisa gerada).
  • MongoDB Dados de código invisíveis: usamos o MongoDB para armazenar alguns de nossos dados analíticos para usuários que não têm o modo de privacidade ativado.
    • Datadog Sem acesso aos dados do código: usamos o Datadog para registro e monitoramento. Conforme mostrado na seção Seção de garantia do modo de privacidade Os logs que envolvem usuários do modo de privacidade não contêm dados de código, conforme descrito em
  • Telas de dados Sem acesso a dados de código: usamos o Databricks MosaicML para treinar alguns modelos personalizados. Os dados do usuário do modelo de privacidade não são transmitidos ao Databricks.
  • Fundição Sem acesso a dados de código: usamos o Foundry para treinar alguns modelos personalizados. Os dados do usuário no modo de privacidade não são transmitidos para a Foundry.
  • Slack Sem acesso a dados de código: usamos o Slack como uma ferramenta de comunicação interna. Em bate-papos internos, trechos de dicas para usuários não privados podem ser enviados para fins de depuração.
  • Espaço de trabalho do Google Sem acesso a dados de código: usamos o Google Workspace para colaboração. Em e-mails internos, trechos de dicas para usuários não privados podem ser enviados para fins de depuração.
  • Pinha Sem acesso aos dados do código: os metadados e os dados incorporados dos documentos indexados são armazenados no Pinecone. Esses documentos são obtidos na Web pública. No momento, estamos migrando esses documentos para o Turbopuffer.
  • Amplitude Sem acesso a dados de código: usamos o Amplitude para algumas de nossas análises de dados; nenhum dado de código é armazenado no Amplitude; apenas dados de eventos são registrados, como o número de "solicitações de Cursor Tab".
  • HashiCorp Sem acesso aos dados do código: usamos o HashiCorp Terraform para gerenciar a infraestrutura.
  • Listrado Sem acesso a dados codificados: usamos o Stripe para processar contas. O Stripe armazena seus dados pessoais (nome, cartão de crédito, endereço).
  • Vercel Sem acesso a dados de código: Usamos o Vercel para implantar o site. O site não tem acesso aos dados de código.
  • WorkOS Sem acesso a dados de código: usamos o WorkOS para lidar com a autenticação. O WorkOS pode armazenar alguns dados pessoais (nome, endereço de e-mail).

Nenhuma de nossas infraestruturas está localizada na China. Não usamos diretamente nenhuma empresa chinesa como subprocessador, nem, até onde sabemos, nenhum de nossos subprocessadores.


Seguimos o princípio do menor privilégio na atribuição de acesso à infraestrutura e implementamos a autenticação multifatorial para a AWS. Limitamos o acesso aos recursos por meio de controles em nível de rede e gerenciamento de segredos.

Segurança do cliente

O Cursor é um projeto de código aberto mantido pela Microsoft Código do Visual Studio (VS Code), uma filial da Microsoft. Página de segurança do GitHub sobre o lançamento de alertas de segurança. Depois de cada lançamento importante do VS Code, publicaremos 'microsoft/vscode' A base de código é mesclada ao Cursor. Você pode ver a versão do VS Code na qual sua versão do Cursor se baseia clicando em "Cursor > Sobre o Cursor" no aplicativo. Se houver um patch de segurança sério no código VS upstream, escolheremos esse patch antes da próxima mesclagem e o lançaremos imediatamente.

Usamos Para a área de trabalho para distribuir nossos aplicativos e realizar atualizações automáticas. Vários aplicativos amplamente usados (como o Linear responder cantando ClickUp) também confiam na plataforma.

Nosso aplicativo envia solicitações para os seguintes domínios para se comunicar com nosso backend. Se você estiver em um ambiente de proxy corporativo, coloque esses domínios na lista de permissões para garantir que o Cursor esteja funcionando corretamente.

  • 'api2.cursor.sh'Usado para a maioria das solicitações de API.
  • 'api3.cursor.sh'Para solicitações da guia do cursor (somente HTTP/2).
  • 'repo42.cursor.sh'Para indexação de base de código (somente HTTP/2).
  • 'api4.cursor.sh'(matemática) gênero'us-asia.gcpp.cursor.sh'(matemática) gênero'us-eu.gcpp.cursor.sh'(matemática) gênero'us-only.gcpp.cursor.sh'Cursor Tab: Usado para solicitações de Cursor Tab (somente HTTP/2), dependendo de sua localização.
  • 'marketplace.cursorapi.com'(matemática) gênero'cursor-cdn.com'Extensão: Usada para fazer download de extensões do Extension Marketplace.
  • 'download.todesktop.com'Para verificar e fazer download de atualizações.

Um recurso de segurança a ser observado que difere do VS Code:

  1. Confiança no espaço de trabalho Isso é desativado por padrão no Cursor. Você pode definir o 'security.workspace.trust.enabled' definido como 'true' (verdadeiro) para habilitá-lo. Ele é desativado por padrão para evitar confusão entre o "Modo restrito" do Workspace Trust e o "Modo de privacidade" do Cursor, e porque suas propriedades de confiança são complexas e difíceis de entender (por exemplo, mesmo que o Workspace Trust esteja ativado, você não estará protegido contra extensões mal-intencionadas, apenas contra pastas mal-intencionadas). Agradecemos o feedback da comunidade sobre se a Confiança no Espaço de Trabalho deve ser ativada por padrão.

Solicitações de IA

Para oferecer sua funcionalidade, o Cursor faz solicitações de IA aos nossos servidores. Essa solicitação ocorre em uma variedade de cenários. Por exemplo, enviamos uma solicitação de IA quando você faz uma pergunta em um bate-papo, enviamos uma solicitação de IA sempre que você digita para que a guia Cursor possa fazer sugestões para você e também podemos enviar uma solicitação de IA em segundo plano para criar contexto ou encontrar erros para alertá-lo.

As solicitações de IA normalmente contêm informações contextuais, como documentos visualizados recentemente, registros de diálogo e trechos de código relevantes com base nas informações do servidor de idiomas. Esses dados de código são enviados para nossa infraestrutura baseada em AWS e, em seguida, encaminhados para o provedor de inferência de modelo de linguagem apropriado (Fireworks/OpenAI/Anthropic/Google). Observe que, mesmo que você configure sua própria chave de API OpenAI nas configurações, a solicitação sempre será entregue primeiro à nossa infraestrutura no AWS.

No momento, ainda não oferecemos suporte à conexão direta do aplicativo Cursor à sua implementação corporativa do OpenAI/Azure/Anthropic, pois nossas compilações do Cursor são feitas em servidores e os modelos personalizados no Fireworks são essenciais para proporcionar uma boa experiência ao usuário. Ainda não oferecemos uma opção de implementação de servidor auto-hospedado.

Todo o código gerado pelo Cursor é de sua propriedade.

Índice da base de código

O Cursor permite que você indexe semanticamente a base de código, possibilitando responder a perguntas com o contexto de toda a base de código e escrever código de melhor qualidade fazendo referência a implementações existentes. A indexação da base de código é ativada por padrão, mas pode ser desativada no processo de inicialização ou nas configurações.

Nosso recurso de indexação de base de código funciona da seguinte forma: quando ativado, ele examina as pastas que você abriu no Cursor e calcula uma árvore Merkle de hashes de todos os arquivos.'.gitignore' talvez '.cursorignore' Os arquivos e subdiretórios especificados na árvore de Merkle são ignorados. A árvore de Merkle é então sincronizada com o servidor. A cada 10 minutos, o hash é verificado quanto a correspondências e a árvore de Merkle é usada para identificar os arquivos alterados e fazer upload somente deles.

Em nosso servidor, dividimos e incorporamos os arquivos e armazenamos a incorporação na pasta Turbopuffer em. Para permitir a filtragem dos resultados da pesquisa de vetores por caminho de arquivo, armazenamos um caminho de arquivo relativo ofuscado para cada vetor, bem como o intervalo de linhas correspondente ao trecho. Também indexamos as incorporações pelo hash do bloco no cache do AWS para garantir que a indexação da mesma base de código uma segunda vez seja mais rápida (isso é especialmente útil para equipes).

Na fase de inferência, calculamos uma incorporação, fazemos com que o Turbopuffer execute uma pesquisa de vizinhança mais próxima, enviamos os caminhos de arquivos ofuscados e os intervalos de linhas de volta ao cliente e lemos esses blocos de arquivos localmente no cliente. Em seguida, enviamos esses blocos de volta ao servidor para responder às perguntas do usuário. Isso significa que nenhum código de texto simples é armazenado em nosso servidor ou no Turbopuffer.

Algumas observações:

  • mesmo que '.cursorignore' Os arquivos podem ser impedidos de serem indexados, mas ainda assim podem ser incluídos nas solicitações de IA, como quando você visualizou um arquivo recentemente e, posteriormente, fez uma pergunta no bate-papo. Estamos considerando adicionar '.cursorban' para lidar com cenários em que você deseja impedir que o arquivo seja enviado em qualquer solicitação - se você estiver interessado nesse recurso, publique nos fóruns ou por meio do hi@cursor.com Entre em contato conosco.
  • Detalhes da ofuscação do caminho do arquivo: os caminhos são passados por '/' responder cantando '.' Dividir e criptografar cada fragmento usando uma chave armazenada no cliente e um número aleatório curto determinístico de 6 bytes. Isso vaza algumas informações sobre a hierarquia do diretório e há alguns conflitos de números aleatórios, mas oculta a maior parte das informações.
  • Reversão de incorporação: pesquisas acadêmicas mostraram que é possível reverter as incorporações em alguns casos. O ataque atual depende do acesso ao modelo e da incorporação de cadeias curtas em grandes vetores, o que nos leva a crer que é mais difícil realizar esse ataque nesse contexto. No entanto, se um adversário invadir nosso banco de dados de vetores, ele poderá ter algum conhecimento da base de código indexada.
  • Quando a indexação da base de código está ativada em um repositório do Git, também indexamos o histórico do Git. Especificamente, armazenamos SHAs de commit, informações de pai e nomes de arquivos ofuscados (o mesmo que acima). Para permitir o compartilhamento de estruturas de dados dentro do mesmo repositório e equipe do Git, a chave para ofuscação de nomes de arquivos é derivada de um hash dos commits mais recentes. As mensagens de commit e o conteúdo ou as diferenças dos arquivos não são indexados.
  • Nossa função de indexação geralmente está sob alta carga, o que pode causar falhas em muitas solicitações. Isso significa que, às vezes, os arquivos precisam ser carregados várias vezes antes de serem totalmente indexados. Uma manifestação desse problema é que, se você observar o arquivo 'repo42.cursor.sh' de tráfego de rede e pode observar um uso de largura de banda que excede as expectativas.
Aprendizagem fácil com IA

O guia do leigo para começar a usar a IA

Ajuda você a aprender a utilizar as ferramentas de IA com baixo custo e a partir de uma base zero.A IA, assim como o software de escritório, é uma habilidade essencial para todos. Dominar a IA lhe dará uma vantagem em sua busca de emprego e metade do esforço em seu trabalho e estudos futuros.

Ver detalhes>
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Lógica de recuperação de código divulgada na documentação oficial de segurança do Cursor

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil