
Il progetto OWASP NodeGoat fornisce un ambiente per imparare come i rischi di sicurezza OWASP Top 10 si applicano alle applicazioni web sviluppate usando Node.js e come affrontarli efficacemente.
Essendo leggero, veloce e scalabile, Node.js sta diventando una piattaforma ampiamente adottata per lo sviluppo di applicazioni web. Questo progetto fornisce un ambiente per apprendere come i rischi di sicurezza OWASP Top 10 si applicano alle applicazioni web sviluppate con Node.js e come affrontarli efficacemente.
OWASP Top 10 per applicazioni web Node.js:
Questa applicazione include una pagina tutorial che spiega le vulnerabilità OWASP Top 10 e come risolverle.
Una volta che l'applicazione è in esecuzione, puoi accedere alla pagina tutorial all'indirizzo http://localhost:4000/tutorial (o alla porta che hai configurato).
Un'applicazione Node.js vulnerabile per Ninja da sfruttare, distruggere e correggere. Potresti voler configurare la tua copia dell'app per correggere e testare le vulnerabilità. Suggerimento: Cerca i commenti nel codice sorgente.
Il database viene pre-popolato con questi account utente creati come parte dei dati seed:
admin p:Admin_123user1 p:User1_123), (u:user2 p:User2_123)Installa Node.js - NodeGoat richiede Node v8 o superiore
Clona il repository github:
git clone https://github.com/OWASP/NodeGoat.git
Vai nella directory:
cd NodeGoat
Installa i pacchetti node:
npm install
Configura MongoDB. Puoi installare MongoDB localmente o creare un'istanza remota:
Usando MongoDB locale:
Usando un'istanza MongoDB remota:
MONGODB_URI sulla stringa di connessione del tuo cluster, che può essere visualizzata nella finestra di connessione del cluster. Seleziona "Connect your application", imposta il driver su "Node.js" e la versione su "2.2.12 or later". Questo fornirà una stringa di connessione nella forma:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
Per impostazione predefinita, l'applicazione sarà ospitata sulla porta 4000 e si connetterà a un'istanza MongoDB su localhost:27017. Per modificare questo, imposta le variabili d'ambiente PORT e MONGODB_URI.
Altre impostazioni possono essere modificate aggiornando il file di configurazione.
Il repository include il Dockerfile e docker-compose.yml necessari per impostare l'app e l'istanza del database, quindi connetterli insieme.
Installa docker e docker compose
Clona il repository github:
git clone https://github.com/OWASP/NodeGoat.git
Vai nella directory:
cd NodeGoat
Costruisci le immagini:
docker-compose build
Esegui l'app, questo avvia l'applicazione NodeGoat all'indirizzo http://localhost:4000/:
docker-compose up
Questa opzione utilizza un server node Heroku gratuito ($0/mese).
Anche se non essenziale, si consiglia di fare il fork di questo repository e distribuire il repository forkato. Questo ti permetterà di correggere le vulnerabilità nella tua versione forkata, quindi distribuirla e testarla su Heroku.
Configura un'istanza MongoDB accessibile pubblicamente:
Distribuisci NodeGoat su Heroku cliccando il pulsante qui sotto:
Nella finestra di dialogo Create New App, imposta la variabile di configurazione MONGODB_URI sulla stringa di connessione del tuo cluster MongoDB Atlas. Questa può essere visualizzata nella finestra di connessione del cluster. Seleziona "Connect your application", imposta il driver su "Node.js" e la versione su "2.2.12 or later". Questo fornirà una stringa di connessione nella forma:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
I campi <username> e <password> devono essere compilati con i dettagli dell'utente del database aggiunto in precedenza. Il campo <dbname> imposta il nome del database che nodegoat utilizzerà nel cluster (ad esempio "nodegoat"). Gli altri campi saranno già compilati con i dettagli corretti per il tuo cluster.
Segui la guida per contribuire
Questo progetto è vincolato da un Codice di Condotta.
Ecco gli straordinari contributori al progetto NodeGoat.
Codice concesso in licenza sotto Apache License v2.0.
<username><password><dbname>Popola MongoDB con i dati seed necessari per l'app:
npm run db:seed
Per impostazione predefinita verrà utilizzata la configurazione "development", ma se necessario è possibile passare la configurazione desiderata come argomento.
Avvia il server. Puoi eseguire il server usando node o nodemon:
npm start
npm run dev