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 /it/docs/web/security.md (or send Accept: text/markdown).
Sicurezza e privacy
Rate limit, secret, export dei dati e la traccia di audit.
Procedura dettagliata per principianti
Prerequisiti: leggi le due guide per principianti di seguito, completa la configurazione locale del Web e apri questo monorepo alla radice nel tuo editor. Le impostazioni Web appartengono a apps/web/.env.local; Next.js non legge la radice .env. /dashboard nella modalità falsa predefinita è una demo senza database; /auth necessita di un database migrato.
Termini rapidi: uno spazio di lavoro è costituito da utenti, dati e impostazioni separati di un team. Il server è il backend affidabile; mantenere le chiavi del provider fuori dal browser e dal codice del telefono. Una migrazione è una modifica del database con versione che crea o aggiorna tabelle. Un modello AI è il motore che risponde; il catalogo dei modelli è l'elenco del server degli ID e dei prezzi dei modelli disponibili. Un fornitore è un servizio esterno come un servizio di intelligenza artificiale, posta elettronica o fatturazione. Un diritto è una concessione che consente a un'area di lavoro di utilizzare una funzionalità. Un webhook è un messaggio che un servizio invia allo URL di un altro servizio.
1. Nell'azione o nel percorso del server che legge un record di proprietà dell'utente, risolvere l'appartenenza dell'utente che ha effettuato l'accesso e workspaceId attivo prima di eseguire la query.
2. Chiedi al tuo agente di aggiungere un caso di membro consentito e un rifiuto di spazio di lavoro esterno per l'esatto percorso del record; fornire i ruoli e i campi coinvolti.
3. La prima richiesta dovrebbe avere esito positivo e la seconda non dovrebbe restituire nessun record/accesso negato. Se la modifica solo del pulsante nasconde l'accesso ma le richieste dirette continuano a funzionare, manca il limite del server.
Per il codice personalizzato, inizia con prompts/README.md in dotazione e copia il prompt più vicino: prompts/new-app-screen.md per la schermata di un'app o prompts/new-landing-page.md per una pagina pubblica. Per il lavoro su server, database o provider, assegna al tuo agente di codifica il compito di questa guida e chiedigli di leggere AGENTS.md, .ai/PROJECT_CONTEXT.md e i mirror .ai/ corrispondenti; controllare gli esatti file sorgente nominati qui; elencare file e controlli prima della modifica; preservare la proprietà dello spazio di lavoro e i segreti solo del server; e mostrarti la differenza. Indicagli il comportamento desiderato, i campi di input e output, i ruoli consentiti, i successi e gli errori previsti e l'account, il fornitore o il dispositivo di prova. Utilizzare valori campione; non incollare mai un vero segreto.
Risolvi l'appartenenza prima dei dati
La seduta sceglie l'identità; il server risolve l'area di lavoro attiva e verifica l'appartenenza/ruolo. Ogni record di proprietà dell'utente utilizza workspaceId. Un campo client, un ID URL o un argomento selezionato dal modello non può sostituire il controllo di proprietà.
Le risorse di marketing della piattaforma e i record di amministrazione della piattaforma hanno un ambito esplicito della piattaforma; non inventare uno spazio di lavoro per le voci anonime delle liste d'attesa.
Trasportare il confine attraverso il lavoro asincrono
Attività, lavori, contesto dello strumento, chiavi API, contenuto, archiviazione ed eventi in uscita ereditano l'area di lavoro autenticata. Controlla gli ID delle risorse insieme alla proprietà. Consentire un ID valido da un'altra area di lavoro è ancora un errore di autorizzazione.
Scrivi prima i test di rifiuto
Associa ogni mutazione/lettura riuscita con test anonimi, in spazio di lavoro esterno e con ruolo insufficiente. Non rivelare mai segreti durante la diagnosi di un risultato proibito.
Installazione e configurazione
rate-limit-runtime fornisce il limiter condiviso collegato alle route di auth, checkout, API e submission — estendilo a nuovi endpoint sensibili ad abuso invece di inventare contatori per route. Configurazione di sessione, cookie solo-HTTPS e secret dei provider restano lato server.
I record di audit del workspace (audit-runtime.ts) catturano cambiamenti rilevanti per la sicurezza — configurazione provider, aggiornamenti di membri e ruoli — e sono leggibili sotto /settings/audit.
# Data subject export
src/data-export.ts — assembles a member's
workspace-owned records for account exportFlusso di implementazione
Mantieni le credenziali fuori da log, payload di errore, proprietà analytics e valori di audit — il livello di osservabilità redige le chiavi note, ma il testo libero è responsabilità dell'autore. Risolvi l'autorizzazione sul server per ogni lettura e scrittura; lo stato dell'interfaccia è presentazione, non prova.
L'export dei dati dell'account e le richieste di cancellazione passano attraverso il confine dell'account così si applicano le stesse regole di proprietà. Archivia solo i dati di cui il prodotto ha bisogno.
Verifica e risoluzione dei problemi
Esercita il limiter finché restituisce un 429 ritentabile, verifica che le righe di audit appaiano per le mutazioni che dovrebbero produrle, ed esporta i dati di un membro di test. Sonda una lettura cross-workspace per release — la regressione più economica che conta.