Skip to content

Commit

Permalink
Merge pull request #93 from Triple-Z/dev
Browse files Browse the repository at this point in the history
Enhance security and refactor the code
  • Loading branch information
arcosx authored Apr 16, 2019
2 parents ed9fb56 + 206c7cc commit a4316ec
Show file tree
Hide file tree
Showing 77 changed files with 4,868 additions and 339 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ log/
# Ignore docker database volume
db-data/
data/
data-dev/

# Ignore binary file and only file
safeu-backend
Expand Down
63 changes: 63 additions & 0 deletions ERRORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Error Code Documentation

## System Errors

1xxxx 为系统级错误。

| Error Code | Error Message (en) | Error Message (zh) |
| :----: | :----: | :----: |
| 10001 | System error | 系统错误 |
| 10002 | Service unavailable | 服务暂停 |
| 10003 | Parameter error | 参数错误 |
| 10004 | Parameter value invalid | 参数非法 |
| 10005 | Missing required parameter | 缺少参数 |
| 10006 | Resource unavailable | 资源不存在 |
| 10007 | CSRF token mismatch | CSRF 认证失败 |
| 10008 | This service is undergoing maintenance | 服务处于维护模式,无法提供服务 |

## Application Errors

2xxxx 为应用级错误。

### General Errors

| Error Code | Error Message (en) | Error Message (zh) |
| :----: | :----: | :----: |
| 20000 | General error | 通用应用错误(以返回错误信息为准) |

### Upload Errors

201xx 为上传相关错误。

### Update Errors

202xx 为更新相关错误。

| Error Code | Error Message (en) | Error Message (zh) |
| :----: | :----: | :----: |
| 20201 | Can't find user token | 无法找到 Token |

### Download Errors

203xx 为下载相关错误。

| Error Code | Error Message (en) | Error Message (zh) |
| :----: | :----: | :----: |
| 20301 | Missing token in header | 请求头缺少 Token |
| 20302 | Token used | Token 已被使用 |
| 20303 | Token expired | Token 已过期 |
| 20304 | Token revoked | Token 不合法 |
| 20305 | Can't get the download link | 无法获取下载链接 |
| 20306 | The retrieve code mismatch auth | 提取码无法对应auth |
| 20307 | The retrieve code repeat | 提取码重复 |
### Delete Errors

204xx 为删除相关错误。

### Validate Errors

205xx 为认证相关错误。

| Error Code | Error Message (en) | Error Message (zh) |
| :----: | :----: | :----: |
| 20501 | Incorrect password | 密码错误 |
32 changes: 30 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
- [MariaDB](#mariadb)
- [Redis](#redis)
- [Cloud Services Config](#cloud-services-config)
- [Security](#security)
- [CORS](#cors)
- [CSRF](#csrf)
- [Error Codes](#error-codes)
- [Release Mode](#release-mode)
- [Deploy (Development Environment)](#deploy-development-environment)
- [Build from Source](#build-from-source)
Expand Down Expand Up @@ -81,6 +85,30 @@ CREATE DATABASE safeu;

`conf/` 下新建并填写 `cloud.yml` 文件,具体请参照 `conf/cloud.exmaple.yml`

## Security

安全设计。

### CORS

Cross-origin Resource Sharing 跨源资源共享。

- 可共享域名由 [CORS_ALLOW_ORIGINS](common/const.go#L65) 决定;
- 可返回的响应头由 [CORS_ALLOW_HEADERS](common/const.go#L72) 决定;
- 允许的 HTTP 方法由 [CORS_ALLOW_METHODS](common/const.go#L80) 决定。

### CSRF

Cross-site Request Forgery 跨域请求伪造防护设计。

先请求 `/csrf` 接口获得 CSRF 口令。当发送 POST 请求时,必须在请求头中加入 `X-CSRF-TOKEN` CSRF 认证头,值为获得到的 CSRF 口令,否则会得到 [10007](ERRORS.md#L15) 错误。

## Error Codes

返回错误码。

错误码对照文档:[ERRORS](ERRORS.md)

## Release Mode

若用于生产环境部署,则建议使用 `RELEASE` 模式:
Expand Down Expand Up @@ -123,7 +151,7 @@ $ ./run-dev-docker-containers.sh

```bash
$ cd scripts/
$ ./docker-compose-up-development.sh
$ ./dev-docker-compose.sh up
```

> 需要安装 `docker``docker-Publicompose` ,可用 `scripts/install-docker-family-on-ubuntuPublic1804.sh` 在 Ubuntu 18.04 中安装 Docker 和 DPubliccker Compose。该脚本为中国网络环境额外定制,Public证安装速度。
Expand Down Expand Up @@ -167,7 +195,7 @@ $ ./run-production-docker-containers.sh

```bash
$ cd scripts/
$ ./docker-compose-up-production.sh
$ ./prod-docker-compose.sh up
```

> 需要安装 `docker``docker-compose` ,可用 `scripts/install-docker-family-on-ubuntu-1804.sh` 在 Ubuntu 18.04 中安装 Docker 和 Docker Compose。该脚本为中国网络环境额外定制,保证安装速度。
Expand Down
Loading

0 comments on commit a4316ec

Please sign in to comment.