
secretlint v13.0.4
Strumento di linting componibile per prevenire il commit di credenziali.
Secretlint 

Secretlint è uno strumento di linting pluggable per prevenire il commit di credenziali.
Funzionalità
- Scanner: Trova le credenziali in un progetto e le segnala
- Project Friendly: Facile da configurare nel tuo progetto e da integrare con i servizi CI
- Pre-Commit Hook: Impedisce il commit di file contenenti credenziali
- Pluggable: Consente di creare regole personalizzate e una configurazione flessibile
- Documentation: Descrive il motivo per cui la regola lo rileva come segreto
Demo rapida
Puoi visualizzare il risultato del linting di secretlint su https://secretlint.github.io/.
Avvio rapido
Puoi provare a usare Secretlint nel tuo progetto con un solo comando.
Se hai già installato Docker:
docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"
Se hai già installato Node.js:
npx @secretlint/quick-start "**/*"
Dopo l'esecuzione,
se ottieni un risultato vuoto e lo stato di uscita è 0, il tuo progetto è sicuro.
Altrimenti, riceverai un report di errore: il tuo progetto contiene credenziali come dati grezzi.

Se desideri ottenere una sicurezza continua, consulta la seguente guida all'installazione e configura il pre-commit hook e la CI.
Installazione
Utilizzo di Docker
Prerequisiti: Richiede Docker
Usa il nostro container Docker per ottenere un ambiente con Node.js e secretlint in esecuzione il più rapidamente possibile.
Puoi controllare tutti i file nella directory corrente con secretlint tramite il seguente comando:
docker run -v `pwd`:`pwd` -w `pwd` --rm -it secretlint/secretlint secretlint "**/*"
Il container Docker secretlint/secretlint funziona senza configurazione per design.
Questa immagine Docker include i seguenti pacchetti:
- @secretlint/secretlint-rule-preset-recommend
- @secretlint/secretlint-rule-pattern
- @secretlint/secretlint-formatter-sarif
Per maggiori dettagli, consulta il Dockerfile di secretlint.
Utilizzo di Node.js
Prerequisiti: Richiede Node.js 22+.
Secretlint è scritto in JavaScript. Puoi installare Secretlint usando npm:
npm install secretlint @secretlint/secretlint-rule-preset-recommend --save-dev
Dovresti quindi creare un file di configurazione:
npx secretlint --init
Infine, puoi eseguire Secretlint su qualsiasi file o directory in questo modo:
npx secretlint "**/*"
📝 Secretlint supporta i glob pattern e il glob pattern deve essere racchiuso tra virgolette doppie.
È anche possibile installare Secretlint globalmente usando npm install --global. Tuttavia, non lo consigliamo: alcune regole potrebbero non funzionare correttamente a livello globale.
Utilizzo del binario eseguibile singolo
Prerequisiti: Nessuno
Puoi usare il comando secretlint senza Node.js utilizzando un binario eseguibile singolo.
- Scarica il binario più recente dalla pagina Releases
- Cambia i permessi del file per renderlo eseguibile:
chmod +x ./secretlint - Esegui
./secretlint --initper creare un file di configurazione - Esegui
./secretlint "**/*"per analizzare il tuo progetto
Per maggiori dettagli, consulta il README di publish/binary-compiler.
Utilizzo
secretlint --help mostra la guida all'utilizzo.
Secretlint CLI che analizza dati segreti/credenziali.
Utilizzo
$ secretlint [file|glob*]
Nota
la sintassi glob supportata si basa su picomatch (il motore usato da micromatch)
https://github.com/micromatch/picomatch#globbing-features
https://github.com/micromatch/micromatch#matching-features
Opzioni
--init configura il file di configurazione. Crea il file .secretlintrc.json dal tuo package.json
--format [String] nome del formatter. Predefinito: "stylish". Formatter disponibili: checkstyle, compact, github, jslint-xml, junit, pretty-error, stylish, tap, unix, json, mask-result, table
--output [path:String] percorso del file di output in cui viene scritto il risultato segnalato.
--secretlintrc [path:String] percorso del file di configurazione .secretlintrc. Predefinito: .secretlintrc.*
--secretlintignore [path:String] percorso del file .secretlintignore. Predefinito: .secretlintignore
--stdinFileName [String] nome del file per elaborare il contenuto STDIN. Alcune regole dipendono dal nome del file per verificare il contenuto.
--no-color disabilita il colore ANSI dell'output.
--no-terminalLink disabilita terminalLink dell'output.
--no-maskSecrets disabilita la mascheratura dei valori segreti; i segreti sono mascherati per impostazione predefinita.
--no-glob disabilita l'interpretazione dei glob pattern; tratta tutti gli input come percorsi di file letterali.
--no-gitignore disabilita il rispetto della cascata di .gitignore; i file .gitignore sono
rispettati per impostazione predefinita (dalla v13).
Opzioni per sviluppatori
--profile Abilita il profilo delle prestazioni.
--secretlintrcJSON [String] una stringa JSON di .secretlintrc. usa la stringa JSON invece del file rc.
Opzioni sperimentali
--locale [String] tag di locale per la traduzione dei messaggi. Predefinito: en
Esempi
# Analizza un singolo file
$ secretlint ./README.md
# Analizza tutti i file (racchiudi il glob tra virgolette doppie per evitare l'espansione della shell)
$ secretlint "**/*"
$ secretlint "source/**/*.ini"
# Tratta gli input come percorsi letterali (per SvelteKit (group) / Next.js [param] ecc.)
$ secretlint --no-glob "src/(auth)/login.ts"
# Analizza il contenuto STDIN (il suggerimento sul nome del file influisce su quali regole si applicano)
$ echo "SECRET" | secretlint --stdinFileName=secret.txt
# Usa un file di configurazione personalizzato
$ secretlint "**/*" --secretlintrc=.secretlintrc.custom.json
# Analizza i file ignorati da .gitignore (ad es. per verificare gli artefatti di build)
$ secretlint --no-gitignore "dist/**/*"
# Mascherà i segreti in un file sul posto
$ secretlint .zsh_history --format=mask-result --output=.zsh_history
# Restituisce JSON per l'analisi programmatica
$ secretlint "**/*" --format=json --output=secretlint-report.json