For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/web/security.md (or send Accept: text/markdown).
Segurança e privacidade
Rate limits, secrets, exportação de dados e o rasto de auditoria.
Passo a passo para iniciantes
Pré-requisitos: Leia os dois guias para iniciantes abaixo, conclua a configuração local da Web e abra este monorepo na raiz do seu editor. As configurações da Web pertencem a apps/web/.env.local; Next.js não lê a raiz .env. /dashboard no modo falso padrão é uma demonstração sem banco de dados; /auth precisa de um banco de dados migrado.
Termos rápidos: um espaço de trabalho consiste em usuários, dados e configurações separados de uma equipe. O servidor é o back-end confiável; mantenha as chaves do provedor fora do navegador e do código do telefone. Uma migração é uma alteração de versão do banco de dados que cria ou atualiza tabelas. Um modelo de IA é o mecanismo que responde; o catálogo de modelos é a lista do servidor de IDs e preços de modelos disponíveis. Um provedor é um serviço externo, como IA, e-mail ou serviço de cobrança. Um direito é uma concessão que permite que um espaço de trabalho use um recurso. Um webhook é uma mensagem que um serviço envia para o URL de outro serviço.
1. Na ação ou rota do servidor que lê um registro de propriedade do usuário, resolva a associação do usuário conectado e ative workspaceId antes de consultar.
2. Peça ao seu agente para adicionar um caso de membro permitido e uma negação de espaço de trabalho estrangeiro para o caminho de registro exato; forneça as funções e os campos envolvidos.
3. A primeira solicitação deverá ser bem-sucedida e a segunda não deverá retornar nenhum registro/acesso negado. Se a alteração apenas do botão ocultar o acesso, mas as solicitações diretas ainda funcionarem, o limite do servidor estará ausente.
Para código personalizado, comece com o prompts/README.md fornecido e copie o prompt mais próximo: prompts/new-app-screen.md para uma tela de aplicativo ou prompts/new-landing-page.md para uma página pública. Para trabalho de servidor, banco de dados ou provedor, dê ao seu agente de codificação a tarefa deste guia e peça-lhe para ler AGENTS.md, .ai/PROJECT_CONTEXT.md e espelhos .ai/ correspondentes; inspecione os arquivos de origem exatos nomeados aqui; listar arquivos e verificações antes de editar; preservar a propriedade do espaço de trabalho e os segredos apenas do servidor; e mostrar a diferença. Informe o comportamento desejado, campos de entrada e saída, funções permitidas, sucessos e erros esperados e a conta de teste, provedor ou dispositivo. Use valores de amostra; nunca cole um segredo real.
Resolva a associação antes dos dados
A sessão escolhe a identidade; o servidor resolve o espaço de trabalho ativo e verifica a associação/função. Cada registro de propriedade do usuário usa workspaceId. Um campo de cliente, ID URL ou argumento selecionado por modelo não pode substituir essa verificação de propriedade.
Os ativos de marketing da plataforma e os registros de administração da plataforma têm escopo de plataforma explícito; não invente um espaço de trabalho para entradas anônimas na lista de espera.
Leve a fronteira através do trabalho assíncrono
Tarefas, trabalhos, contexto de ferramenta, chaves API, conteúdo, armazenamento e eventos de saída herdam o espaço de trabalho autenticado. Verifique os IDs dos recursos juntamente com a propriedade. Permitir um ID válido de outro espaço de trabalho ainda é uma falha de autorização.
Escreva testes de negação primeiro
Combine cada mutação/leitura bem-sucedida com testes anônimos, de espaço de trabalho estrangeiro e de função insuficiente. Nunca exponha segredos ao diagnosticar um resultado proibido.
Instalação e configuração
rate-limit-runtime fornece o limiter partilhado ligado às rotas de auth, checkout, API e submission — estende-o a novos endpoints sensíveis a abuso em vez de inventar contadores por rota. Configuração de sessão, cookies só-HTTPS e secrets de providers ficam no lado do servidor.
Os registos de auditoria do workspace (audit-runtime.ts) capturam alterações relevantes para a segurança — configuração de provider, atualizações de membros e papéis — e são legíveis em /settings/audit.
# Data subject export
src/data-export.ts — assembles a member's
workspace-owned records for account exportFluxo de implementação
Mantém as credenciais fora de logs, payloads de erro, propriedades de analytics e valores de auditoria — a camada de observabilidade redige chaves conhecidas, mas texto livre é responsabilidade do autor. Resolve a autorização no servidor para cada leitura e escrita; o estado da interface é apresentação, não prova.
A exportação de dados da conta e os pedidos de eliminação passam pela fronteira da conta para que se apliquem as mesmas regras de propriedade. Armazena apenas os dados de que o produto precisa.
Verificação e resolução de problemas
Exercita o limiter até devolver um 429 repetível, verifica que aparecem linhas de auditoria para as mutações que as devem produzir, e exporta os dados de um membro de teste. Sonda uma leitura entre workspaces por release — a regressão mais barata que importa.