lirantal/NodeGoat-training
GitHub: lirantal/NodeGoat-training
NodeGoat 是一个故意包含 OWASP Top 10 漏洞的 Node.js 学习应用,帮助开发者通过实践掌握 Web 安全风险的识别与修复。
Stars: 0 | Forks: 1
# NodeGoat
由于具有轻量级、快速和可扩展的特点,Node.js 正成为开发 Web 应用程序时被广泛采用的平台。本项目提供了一个学习环境,帮助您了解 OWASP Top 10 安全风险如何适用于使用 Node.js 开发的 Web 应用程序,以及如何有效地解决这些风险。
## 开始使用
适用于 Node.js Web 应用程序的 OWASP Top 10:
### 了解它!
[教程指南](http://nodegoat.herokuapp.com/tutorial) 解释了 OWASP Top 10 中的每种漏洞是如何在 Node.js Web 应用程序中产生的,以及如何预防。
### 实践它!
[一个供高手练习的易受攻击 Node.js 应用](http://nodegoat.herokuapp.com/),供您进行漏洞利用、破坏和修复。您可能想要[设置您自己的应用程序副本](#how-to-setup-your-copy-of-nodegoat)来修复和测试漏洞。提示:请注意源代码中的注释。
##### 默认用户账户
数据库预装了作为初始数据一部分创建的这些用户账户:
* 管理员账户 - u:admin p:Admin_123
* 普通用户账户 (u:user1 p:User1_123), (u:user2 p:User2_123)
* 也可以使用注册页面添加新用户。
## 如何设置您的 NodeGoat 副本
### 选项 1 - 在 Heroku 上一键安装
运行 NodeGoat 最快的方法是点击下方按钮将其部署到 Heroku 上。
尽管不是必需的,但建议您 fork 此代码仓库并部署 fork 后的版本。
这将允许您在自己 fork 的版本中修复漏洞,并在 heroku 上进行部署和测试。
[](https://heroku.com/deploy)
此 Heroku 实例使用免费($0/月)的 node 服务器和 MongoLab 插件。
### 选项 2 - 在您的本地机器上运行 NodeGoat
如果您不想在 Heroku 上运行 NodeGoat,请按照以下步骤在本地进行设置和运行:
* 安装 [Node.js](http://nodejs.org/) - NodeGoat 需要 Node v8 或更高版本
* 克隆 github 仓库
```
git clone https://github.com/OWASP/NodeGoat.git
```
*进入该目录
```
cd NodeGoat
```
* 安装 node modules
```
npm install
```
* 创建 Mongo DB:
您可以创建一个远程 MongoDB 实例,或者使用本地 mongod 安装
* A. 使用远程 MongoDB
* 在 [mLab](https://mlab.com/plans/pricing/#plan-sandbox) 创建一个沙盒 mongoDB 实例(免费)
* 创建一个新数据库。
* 创建一个用户。
* 更新 `config/env/development.js` 文件中的 `db` 属性以反映您的数据库设置。(格式为:`mongodb://:@`)
* 或者 B. 使用本地 MongoDB
* 如果使用本地 Mongo DB 实例,请启动 [mongod](http://docs.mongodb.org/manual/reference/program/mongod/#bin.mongod)。
* 更新 `config/env/development.js` 文件中的 `db` 属性以反映您的数据库设置。(格式为:`mongodb://localhost:27017/`)
* 使用应用程序所需的初始数据填充 MongoDB
* 运行下面的 npm-script,用应用程序所需的初始数据填充数据库。将所需的环境作为参数传递。如果未传递,则默认为 "development":
```
npm run db:seed
```
* 启动服务器,这将在 URL [http://localhost:4000/](http://localhost:4000/) 处启动 NodeGoat 应用程序
```
npm start
```
* 使用 nodemon 启动服务器,这将在 URL [http://localhost:5000/](http://localhost:5000/) 处启动 NodeGoat 应用程序
```
npm run dev
```
### 选项 3 - 在 Docker 上运行 NodeGoat
**您需要安装 [docker](https://docs.docker.com/installation/) 和 [docker compose](https://docs.docker.com/compose/install/) 才能使用此选项**
代码仓库包含了设置应用程序和数据库实例并将它们连接在一起所需的 Dockerfile 和 docker-compose.yml。
* 更改 `config/env/development.js` 中的数据库配置,使其指向相应的 Docker 容器。
```
db: "mongodb://mongo:27017/nodegoat",
```
* 构建 images:
```
docker-compose build
```
* 运行应用程序:
```
docker-compose up
```
#### 自定义默认应用程序配置
可以通过更新[配置文件](https://github.com/OWASP/NodeGoat/blob/master/config/env/all.js)来更改默认的应用程序设置(数据库 url、http 端口等)。
## 报告 Bug、反馈和评论
* 提交一个新的 [issue](https://github.com/OWASP/NodeGoat/issues),或者通过加入 [Slack](https://owasp.slack.com/messages/project-nodegoat/) 聊天室联系团队,或者 [](https://gitter.im/OWASP/NodeGoat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## 支持
- 感谢 JetBrains 为构建此项目提供了出色的 [WebStorm IDE](https://www.jetbrains.com/webstorm/) 许可证。
## 许可证
代码授权基于 [Apache License v2.0.](http://www.apache.org/licenses/LICENSE-2.0)
标签:GNU通用公共许可证, MITM代理, Node.js, OWASP Top 10, Web安全, 后端开发, 培训, 安全靶场, 漏洞演练, 版权保护, 蓝队分析, 请求拦截