
Le projet OWASP NodeGoat fournit un environnement pour apprendre comment les risques de sécurité du Top 10 OWASP s'appliquent aux applications web développées avec Node.js et comment y remédier efficacement.
Léger, rapide et évolutif, Node.js devient une plateforme largement adoptée pour le développement d'applications web. Ce projet fournit un environnement pour apprendre comment les risques de sécurité du Top 10 OWASP s'appliquent aux applications web développées avec Node.js et comment les traiter efficacement.
Top 10 OWASP pour les applications web Node.js :
Cette application inclut une page de tutoriel qui explique les vulnérabilités du Top 10 OWASP et comment les corriger.
Une fois l'application en cours d'exécution, vous pouvez accéder à la page de tutoriel à l'adresse http://localhost:4000/tutorial (ou le port que vous avez configuré).
Une application Node.js vulnérable pour les ninjas à exploiter, casser et corriger. Vous pouvez installer votre propre copie de l'application pour corriger et tester les vulnérabilités. Astuce : cherchez des commentaires dans le code source.
La base de données est pré-remplie avec ces comptes utilisateur créés dans le cadre des données initiales -
admin p:Admin_123user1 p:User1_123), (u:user2 p:User2_123)Installez Node.js - NodeGoat nécessite Node v8 ou supérieur
Clonez le dépôt GitHub :
git clone https://github.com/OWASP/NodeGoat.git
Accédez au répertoire :
cd NodeGoat
Installez les paquets node :
npm install
Configurez MongoDB. Vous pouvez soit installer MongoDB localement, soit créer une instance distante :
Avec MongoDB local :
Avec une instance MongoDB distante :
MONGODB_URI sur la chaîne de connexion de votre cluster, qui peut être consultée dans la
boîte de dialogue de connexion du cluster. Sélectionnez « Connect your application »,
définissez le pilote sur « Node.js » et la version sur « 2.2.12 or later ». Cela donnera une chaîne de connexion de la forme :
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
Par défaut, l'application sera hébergée sur le port 4000 et se connectera à une instance MongoDB à localhost:27017. Pour modifier cela, définissez les variables d'environnement PORT et MONGODB_URI.
D'autres paramètres peuvent être modifiés en mettant à jour le fichier de configuration.
Le dépôt inclut les fichiers Dockerfile et docker-compose.yml nécessaires pour configurer l'application et l'instance de base de données, puis les connecter entre eux.
Installez docker et docker compose
Clonez le dépôt GitHub :
git clone https://github.com/OWASP/NodeGoat.git
Accédez au répertoire :
cd NodeGoat
Construisez les images :
docker-compose build
Exécutez l'application, cela lance l'application NodeGoat à l'adresse http://localhost:4000/ :
docker-compose up
Cette option utilise un serveur node Heroku gratuit (0 $/mois).
Bien que cela ne soit pas essentiel, il est recommandé de forker ce dépôt et de déployer le dépôt forké. Cela vous permettra de corriger les vulnérabilités dans votre propre version forké, puis de la déployer et de la tester sur Heroku.
Configurez une instance MongoDB accessible publiquement :
Déployez NodeGoat sur Heroku en cliquant sur le bouton ci-dessous :
Dans la boîte de dialogue Create New App, définissez la variable de configuration MONGODB_URI sur la chaîne de connexion de votre cluster MongoDB Atlas. Celle-ci peut être consultée dans la boîte de dialogue de connexion du cluster. Sélectionnez « Connect your application », définissez le pilote sur « Node.js » et la version sur « 2.2.12 or later ». Cela donnera une chaîne de connexion de la forme :
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
Les champs <username> et <password> doivent être renseignés avec les détails de l'utilisateur de base de données ajouté précédemment. Le champ <dbname> définit le nom de la base de données que nodegoat utilisera dans le cluster (par exemple « nodegoat »). Les autres champs seront déjà remplis avec les détails corrects pour votre cluster.
Veuillez suivre le guide de contribution
Ce projet est régi par un Code de conduite.
Voici les incroyables contributeurs du projet NodeGoat.
Code sous licence Apache License v2.0.
<username><password><dbname>Remplissez MongoDB avec les données initiales requises pour l'application :
npm run db:seed
Par défaut, cela utilisera la configuration « development », mais la configuration souhaitée peut être passée en argument si nécessaire.
Démarrez le serveur. Vous pouvez exécuter le serveur avec node ou nodemon :
npm start
npm run dev