
Das OWASP NodeGoat-Projekt bietet eine Umgebung, um zu lernen, wie die Sicherheitsrisiken der OWASP Top 10 auf Webanwendungen zutreffen, die mit Node.js entwickelt wurden, und wie man ihnen wirksam begegnet.
Da Node.js leichtgewichtig, schnell und skalierbar ist, wird es zunehmend zu einer weit verbreiteten Plattform für die Entwicklung von Webanwendungen. Dieses Projekt bietet eine Umgebung, um zu lernen, wie die Sicherheitsrisiken der OWASP Top 10 auf Webanwendungen zutreffen, die mit Node.js entwickelt wurden, und wie man sie effektiv behebt.
OWASP Top 10 für Node.js-Webanwendungen:
Diese Anwendung enthält eine Tutorial-Seite, die die Schwachstellen der OWASP Top 10 erklärt und wie man sie behebt.
Sobald die Anwendung läuft, kannst du die Tutorial-Seite unter http://localhost:4000/tutorial aufrufen (oder den Port, den du konfiguriert hast).
A Vulnerable Node.js App for Ninjas zum Ausnutzen, Zerstören und Beheben. Du möchtest vielleicht deine eigene Kopie der App einrichten, um Schwachstellen zu beheben und zu testen. Hinweis: Achte auf Kommentare im Quellcode.
Die Datenbank wird mit diesen Benutzerkonten ausgeliefert, die als Teil der Seed-Daten erstellt wurden:
admin p:Admin_123user1 p:User1_123), (u:user2 p:User2_123)Installiere Node.js - NodeGoat erfordert Node v8 oder höher
Klone das GitHub-Repository:
git clone https://github.com/OWASP/NodeGoat.git
Wechsle in das Verzeichnis:
cd NodeGoat
Installiere die Node-Pakete:
npm install
Richte MongoDB ein. Du kannst MongoDB entweder lokal installieren oder eine entfernte Instanz erstellen:
Verwendung einer lokalen MongoDB:
Verwendung einer entfernten MongoDB-Instanz:
MONGODB_URI-Umgebungsvariable auf den Verbindungsstring deines Clusters, der im Verbindungsdialog des Clusters angezeigt werden kann. Wähle „Connect your application", stelle den Treiber auf „Node.js" und die Version auf „2.2.12 or later". Dies ergibt einen Verbindungsstring in der Form:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
Standardmäßig wird die Anwendung auf Port 4000 gehostet und verbindet sich mit einer MongoDB-Instanz unter localhost:27017. Um dies zu ändern, setze die Umgebungsvariablen PORT und MONGODB_URI.
Weitere Einstellungen können durch Aktualisieren der Konfigurationsdatei geändert werden.
Das Repository enthält die Dockerfile und docker-compose.yml, die benötigt werden, um die App- und die DB-Instanz einzurichten und miteinander zu verbinden.
Installiere docker und docker compose
Klone das GitHub-Repository:
git clone https://github.com/OWASP/NodeGoat.git
Wechsle in das Verzeichnis:
cd NodeGoat
Baue die Images:
docker-compose build
Führe die App aus. Dadurch wird die NodeGoat-Anwendung unter http://localhost:4000/ gestartet:
docker-compose up
Diese Option verwendet einen kostenlosen Heroku-Node-Server ($0/Monat).
Obwohl nicht unbedingt erforderlich, wird empfohlen, dieses Repository zu forken und das geforkte Repository bereitzustellen. So kannst du Schwachstellen in deiner eigenen Fork-Version beheben und sie dann auf Heroku bereitstellen und testen.
Richte eine öffentlich zugängliche MongoDB-Instanz ein:
Stelle NodeGoat auf Heroku bereit, indem du auf den folgenden Button klickst:
Setze im Dialog „Create New App" die Konfigurationsvariable MONGODB_URI auf den Verbindungsstring deines MongoDB-Atlas-Clusters.
Dieser kann im Verbindungsdialog des Clusters eingesehen werden.
Wähle „Connect your application", stelle den Treiber auf „Node.js" und die Version auf „2.2.12 or later".
Dies ergibt einen Verbindungsstring in der Form:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
Die Felder <username> und <password> müssen mit den Daten des zuvor hinzugefügten Datenbankbenutzers ausgefüllt werden. Das Feld <dbname> legt den Namen der Datenbank fest, die nodegoat im Cluster verwenden wird (z. B. „nodegoat"). Die anderen Felder sind bereits mit den korrekten Details für deinen Cluster ausgefüllt.
Bitte folge dem Mitwirkungsleitfaden
Dieses Projekt unterliegt einem Verhaltenskodex.
Hier sind die großartigen Mitwirkenden am NodeGoat-Projekt.
Code lizenziert unter der Apache License v2.0.
<username><password><dbname>Befülle MongoDB mit den für die App erforderlichen Seed-Daten:
npm run db:seed
Standardmäßig wird die Konfiguration „development" verwendet, aber die gewünschte Konfiguration kann bei Bedarf als Argument übergeben werden.
Starte den Server. Du kannst den Server mit node oder nodemon ausführen:
npm start
npm run dev