public:it:web_developer_security_checklist

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:web_developer_security_checklist [2019/03/21 21:31] – [网络传输] oakfirepublic:it:web_developer_security_checklist [2020/11/05 20:01] (当前版本) – [网络传输] oakfire
行 13: 行 13:
     * 开发环境与部署环境的安全要求应该等同,确保在安全隔离的开发环境下开发软件。     * 开发环境与部署环境的安全要求应该等同,确保在安全隔离的开发环境下开发软件。
 ==== 身份认证 ==== ==== 身份认证 ====
-    * 确保所有密码经过合适算法哈希,比如[[https://en.wikipedia.org/wiki/Bcrypt|Bcrypt]]。不要记录哈希所用数,哈希所用数要随机生成。+    * 确保所有密码经过合适算法哈希,比如[[wp>Bcrypt|Bcrypt]]。不要记录哈希所用数,哈希所用数要随机生成。
     * 登录、遗忘密码、重置密码等业务逻辑要使用已被证明的最佳实践方案。不要自己造个新的——想要在所有场景下都能不出问题是很难的。     * 登录、遗忘密码、重置密码等业务逻辑要使用已被证明的最佳实践方案。不要自己造个新的——想要在所有场景下都能不出问题是很难的。
     * 实现简单但足够的规则来促使用户使用足够长足够随机的密码。     * 实现简单但足够的规则来促使用户使用足够长足够随机的密码。
-    * :?: Use multi-factor authentication for your logins to all your service providers.+    * 在所有服务上都使用 MFA ([[wp>Multi-factor_authentication|Multi-Factor Authentication]] 来提供登陆
 ==== 对付拒绝服务攻击 ==== ==== 对付拒绝服务攻击 ====
     * 确保对API的DDOS攻击不会波及整个站点。最低限度为你的高耗API或者认证相关API必须有访问频次限制。可考虑在前端加验证码来帮助后端应对DDOS攻击。     * 确保对API的DDOS攻击不会波及整个站点。最低限度为你的高耗API或者认证相关API必须有访问频次限制。可考虑在前端加验证码来帮助后端应对DDOS攻击。
行 22: 行 22:
     * 可考虑使用全局缓冲代理服务(比如 [[https://www.cloudflare.com/|CloudFlare]]来减轻DDOS攻击。     * 可考虑使用全局缓冲代理服务(比如 [[https://www.cloudflare.com/|CloudFlare]]来减轻DDOS攻击。
 ==== 网络传输 ==== ==== 网络传输 ====
-    * 全站都使用 TLS, 不只在登录页面使用。 传统上,使用  ''strict-transport-security'' 头来强制所有请求使用HTTPS。+    * 全站都使用 TLS, 不只在登录页面使用。 传统上,使用  ''strict-transport-security'' 头来强制所有请求使用HTTPS。
     * Cookies 必须 ''httpOnly''、安全的、并区分于路径域名。     * Cookies 必须 ''httpOnly''、安全的、并区分于路径域名。
     * 使用内容安全策略(CSP)禁止所有 unsafe-* backdoors. 配置起来虽然很麻烦但很值得做。 对 CDN 内容实用 CSP Subresource Integrity.     * 使用内容安全策略(CSP)禁止所有 unsafe-* backdoors. 配置起来虽然很麻烦但很值得做。 对 CDN 内容实用 CSP Subresource Integrity.
行 32: 行 32:
     * 确保资源不会在你的公开接口中被枚举。(API 里指定资源个体要用 uuid 而不是顺序的  id)     * 确保资源不会在你的公开接口中被枚举。(API 里指定资源个体要用 uuid 而不是顺序的  id)
     * 确保接口使用者经过充分的认证与授权     * 确保接口使用者经过充分的认证与授权
-    * Use canary checks in APIs to detect illegal or abnormal requests that indicate attacks.+    * 在 API  中使用“金丝雀”检查法来区别非法与反常的攻击性请求。<code>注释:矿井中的金丝雀 
 +17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯, 
 +金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。 
 +当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”, 
 +以便在危险状况下紧急撤离</code> 
 + 
 ==== 数据验证与加密 ==== ==== 数据验证与加密 ====
     * 在客户端做输入验证以让用户迅速获得反馈,但别信任客户端验证。在显示前要始终验证并加密用户的输入内容。     * 在客户端做输入验证以让用户迅速获得反馈,但别信任客户端验证。在显示前要始终验证并加密用户的输入内容。
  • public/it/web_developer_security_checklist.1553175096.txt.gz
  • 最后更改: 2019/03/21 21:31
  • oakfire