Skip to content

Commit 848a598

Browse files
committed
docs: fix punctuation, make translation more fluent
Signed-off-by: hylerrix <hylerrix@gmail.com>
1 parent a6079ff commit 848a598

1 file changed

Lines changed: 42 additions & 42 deletions

File tree

README-zh.md

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
11
[English](./README.md) | [繁中版](./README-tw.md) | [Português (Brasil)](./README-pt_BR.md) | [Français](./README-fr.md) | [한국어](./README-ko.md) | [Nederlands](./README-nl.md) | [Indonesia](./README-id.md) | [ไทย](./README-th.md) | [Русский](./README-ru.md) | [Українська](./README-uk.md) | [Español](./README-es.md) | [Italiano](./README-it.md) | [日本語](./README-ja.md) | [Deutsch](./README-de.md) | [Türkçe](./README-tr.md) | [Tiếng Việt](./README-vi.md) | [Монгол](./README-mn.md) | [हिंदी](./README-hi.md) | [العربية](./README-ar.md) | [Polski](./README-pl.md) | [Македонски](./README-mk.md) | [ລາວ](./README-lo.md)
22

33
# 开发安全的 API 所需要核对的清单
4-
以下是当你在设计, 测试以及发布你的 API 的时候所需要核对的重要安全措施.
4+
以下是当你在设计测试以及发布你的 API 的时候所需要核对的重要安全措施
55

66

77
---
88

99
## 身份认证
10-
- [ ] 不要使用 `Basic Auth` 使用标准的认证协议 (如 JWT, OAuth).
11-
- [ ] 不要重新实现 `Authentication`, `token generating`, `password storing`, 使用标准库.
12-
- [ ] 限制密码错误尝试次数,并且增加账号冻结功能.
13-
- [ ] 加密所有的敏感数据.
10+
- [ ] 不要使用 `Basic Auth` ,请使用标准的认证协议 (如 [JWT](https://jwt.io/)[OAuth](https://oauth.net/)))。
11+
- [ ] 不要重新实现 `Authentication``token generating``password storing`, 请使用标准库。
12+
- [ ] 限制密码错误尝试次数,并且增加账号冻结功能
13+
- [ ] 加密所有的敏感数据
1414

1515
### JWT (JSON Web Token)
16-
- [ ] 使用随机复杂的密钥 (`JWT Secret`) 以增加暴力破解的难度.
17-
- [ ] 不要在请求体中直接提取数据, 要对数据进行加密 (`HS256` 或 `RS256`).
18-
- [ ] 使 token 的过期时间尽量的短 (`TTL`, `RTTL`).
19-
- [ ] 不要在 JWT 的请求体中存放敏感数据, 它是[可解码的](https://jwt.io/#debugger-io).
16+
- [ ] 使用随机复杂的密钥 (`JWT Secret`) 以增加暴力破解的难度
17+
- [ ] 不要在请求体中直接提取数据要对数据进行加密 (`HS256` 或 `RS256`)
18+
- [ ] 使 token 的过期时间尽量的短 (`TTL``RTTL`)
19+
- [ ] 不要在 JWT 的请求体中存放敏感数据,因为它是[可解码的](https://jwt.io/#debugger-io)
2020

2121
### OAuth 授权或认证协议
22-
- [ ] 始终在后台验证 `redirect_uri`, 只允许白名单的 URL.
23-
- [ ] 始终在授权时使用有效期较短的授权码(code)而不是令牌(access_token) (不允许 `response_type=token`).
24-
- [ ] 使用随机哈希数的 `state` 参数来防止跨站请求伪造(CSRF).
25-
- [ ] 对不同的应用分别定义默认的作用域和各自有效的作用域参数.
22+
- [ ] 始终在后台验证 `redirect_uri`只允许白名单的 URL
23+
- [ ] 始终在授权时使用有效期较短的授权码(code)而不是令牌(access_token) (不允许 `response_type=token`)
24+
- [ ] 使用随机哈希数的 `state` 参数来防止跨站请求伪造(CSRF)
25+
- [ ] 对不同的应用分别定义默认的作用域和各自有效的作用域参数
2626

2727
## 访问
28-
- [ ] 限制流量来防止 DDoS 攻击和暴力攻击.
29-
- [ ] 在服务端使用 HTTPS 协议来防止 MITM (中间人攻击).
30-
- [ ] 使用 `HSTS` 协议防止 SSL Strip 攻击.
28+
- [ ] 限制流量来防止 DDoS 攻击和暴力攻击
29+
- [ ] 在服务端使用 HTTPS 协议来防止 MITM (中间人攻击)
30+
- [ ] 使用 `HSTS` 协议防止 SSL Strip 攻击
3131

3232
## 输入
33-
- [ ] 使用与操作相符的 HTTP 操作函数, `GET (读取)`, `POST (创建)`, `PUT (替换/更新)` 以及 `DELETE (删除记录)`, 如果请求的方法不适用于请求的资源则返回 `405 Method Not Allowed`.
34-
- [ ] 在请求头中的 `content-type` 字段使用内容验证来只允许支持的格式 (如 `application/xml`, `application/json` 等等) 并在不满足条件的时候返回 `406 Not Acceptable`.
35-
- [ ] 验证 `content-type` 中申明的编码和你收到正文编码一致 (如 `application/x-www-form-urlencoded`, `multipart/form-data`, `application/json` 等等).
36-
- [ ] 验证用户输入来避免一些普通的易受攻击缺陷 (如 `XSS`, `SQL-注入`, `远程代码执行` 等等).
37-
- [ ] 不要在 URL 中使用任何敏感的数据 (`credentials`, `Passwords`, `security tokens`, or `API keys`), 而是使用标准的认证请求头.
38-
- [ ] 使用一个 API Gateway 服务来启用缓存、限制访问速率 (如 `Quota`, `Spike Arrest`, `Concurrent Rate Limit`) 以及动态地部署 APIs resources.
33+
- [ ] 使用与操作相符的 HTTP 操作函数`GET (读取)``POST (创建)``PUT (替换/更新)` 以及 `DELETE (删除记录)`如果请求的方法不适用于请求的资源则返回 `405 Method Not Allowed`
34+
- [ ] 在请求头中的 `content-type` 字段使用内容验证来只允许支持的格式 (如 `application/xml``application/json` 等等) 并在不满足条件的时候返回 `406 Not Acceptable`
35+
- [ ] 验证 `content-type` 中申明的编码和你收到正文编码一致 (如 `application/x-www-form-urlencoded``multipart/form-data``application/json` 等等)
36+
- [ ] 验证用户输入来避免一些普通的易受攻击缺陷 (如 `XSS``SQL-注入``远程代码执行` 等等)
37+
- [ ] 不要在 URL 中使用任何敏感的数据 (`credentials``Passwords``security tokens`or `API keys`)而是使用标准的认证请求头
38+
- [ ] 使用一个 API Gateway 服务来启用缓存、限制访问速率 (如 `Quota``Spike Arrest``Concurrent Rate Limit`) 以及动态地部署 APIs resources
3939

4040
## 处理
41-
- [ ] 检查是否所有的接口都包含必要都身份认证, 以避免被破坏了的认证体系.
42-
- [ ] 避免使用特有的资源 id. 使用 `/me/orders` 替代 `/user/654321/orders`.
43-
- [ ] 使用 `UUID` 代替自增长的 id.
44-
- [ ] 如果需要解析 XML 文件, 确保实体解析(entity parsing)是关闭的以避免 `XXE` 攻击.
45-
- [ ] 如果需要解析 XML 文件, 确保实体扩展(entity expansion)是关闭的以避免通过指数实体扩展攻击实现的 `Billion Laughs/XML bomb`.
46-
- [ ] 在文件上传中使用 CDN.
47-
- [ ] 如果数据处理量很大, 尽可能使用队列或者 Workers 在后台处理来避免阻塞请求,从而快速响应客户端.
48-
- [ ] 不要忘了把 DEBUG 模式关掉.
41+
- [ ] 检查是否所有的接口都包含必要都身份认证以避免被破坏了的认证体系
42+
- [ ] 避免使用特有的资源 id使用 `/me/orders` 替代 `/user/654321/orders`
43+
- [ ] 使用 `UUID` 代替自增长的 id
44+
- [ ] 如果需要解析 XML 文件确保实体解析(entity parsing)是关闭的以避免 `XXE` 攻击
45+
- [ ] 如果需要解析 XML 文件确保实体扩展(entity expansion)是关闭的以避免通过指数实体扩展攻击实现的 `Billion Laughs/XML bomb`
46+
- [ ] 在文件上传中使用 CDN
47+
- [ ] 如果数据处理量很大尽可能使用队列或者 Workers 在后台处理来避免阻塞请求,从而快速响应客户端
48+
- [ ] 不要忘了把 DEBUG 模式关掉
4949

5050
## 输出
51-
- [ ] 增加请求返回头 `X-Content-Type-Options: nosniff`.
52-
- [ ] 增加请求返回头 `X-Frame-Options: deny`.
53-
- [ ] 增加请求返回头 `Content-Security-Policy: default-src 'none'`.
54-
- [ ] 删除请求返回中的指纹头 - `X-Powered-By`, `Server`, `X-AspNet-Version` 等等.
55-
- [ ] 在响应中遵循请求的 `content-type`, 如果你的请求类型是 `application/json` 那么你返回的 `content-type` 就是 `application/json`.
56-
- [ ] 不要返回敏感的数据, `credentials`, `Passwords`, `security tokens`.
57-
- [ ] 给请求返回使用合理的 HTTP 响应代码. (如 `200 OK`, `400 Bad Request`, `401 Unauthorized`, `405 Method Not Allowed` 等等).
51+
- [ ] 增加请求返回头 `X-Content-Type-Options: nosniff`
52+
- [ ] 增加请求返回头 `X-Frame-Options: deny`
53+
- [ ] 增加请求返回头 `Content-Security-Policy: default-src 'none'`
54+
- [ ] 删除请求返回中的指纹头 - `X-Powered-By``Server``X-AspNet-Version` 等等
55+
- [ ] 在响应中遵循请求的 `content-type`如果你的请求类型是 `application/json` 那么你返回的 `content-type` 就是 `application/json`
56+
- [ ] 不要返回敏感的数据`credentials``Passwords``security tokens`
57+
- [ ] 给请求返回使用合理的 HTTP 响应代码(如 `200 OK``400 Bad Request``401 Unauthorized``405 Method Not Allowed` 等等)
5858

5959
## 持续集成和持续部署
60-
- [ ] 使用单元测试以及集成测试的覆盖率来保障你的设计和实现.
61-
- [ ] 引入代码审查流程, 禁止私自合并代码.
62-
- [ ] 在推送到生产环境之前确保服务的所有组件都用杀毒软件静态地扫描过, 包括第三方库和其它依赖.
63-
- [ ] 为部署设计一个回滚方案.
60+
- [ ] 使用单元测试以及集成测试的覆盖率来保障你的设计和实现
61+
- [ ] 引入代码审查流程禁止私自合并代码
62+
- [ ] 在推送到生产环境之前确保服务的所有组件都用杀毒软件静态地扫描过包括第三方库和其它依赖
63+
- [ ] 为部署设计一个回滚方案
6464

6565

6666
---
@@ -72,4 +72,4 @@
7272
---
7373

7474
# 贡献
75-
为此存储库创建一个 fork, 进行修改, 并提交 pull request 来贡献. 如果您有任何问题, 请发送邮件至 `team@shieldfy.io`.
75+
为此存储库创建一个 fork进行修改并提交 pull request 来贡献如果您有任何问题请发送邮件至 `team@shieldfy.io`

0 commit comments

Comments
 (0)