云端主机部署安全原则
服务器硬件实体建置安全部署 例如:安全组限制访问,端口转发限制,仅允许外网访问 Nginx 主机 IP,SSL 凭证配置
服务安装配置安全原则
服务器数字资源访问安全设置(基于 IP 与基于用户角色的权限控制) Nginx 启用 ModSecurity 建构 WAF Keepalived 搭配 Nginx 实现双机高可用,防止单点故障 例如:数据库的IP Binding。防火墙配置( ufw 在数据库服务器,以及反向代理场景的不同配置)
数据库安全原则
- 用户密码以单向哈西值存储
- 数据库 root 权限仅局限于内网本地访问
- 数据库副本备份
RESTful API安全
https://blog.techbridge.cc/2017/02/25/csrf-introduction/
- 不对外开放不安全的 API 访问权限
- 使用 HTTPS 加密传输
- OAuth 认证
- 使用者提交内容过滤 ( XSS 攻击,SQL 注入攻击)
- 限制请求并发数,以及限制用户访问请求的频率( DDoS 攻击)
- 高度敏感性资讯访问加上简讯验证码
- 采用 Double Submit Cookie 比对表单 csrftoken ( CSRF 攻击)
- 重要ID不透明处理,如采用 UUID ( Path traversal 攻击 )
OAuth安全原则
https://www.oauth.com/oauth2-servers/scope/defining-scopes/
- redirect_uri 全路径验证
- 状态参数 state 随时销毁
- 获取访问 token 时,验证 client_secret
- 回调 url 进行跳转校验 ( CSRF 攻击)
- 采用 scope 限制用户敏感信息的访问层级
- 采用 audience 限制准许访问 token 请求的 URLs 白名单
- 采用 allowed_cors_origins 有条件限制防止跨原始来源资源分享( CORS )攻击
- 采用 grant_types 限制 token 的访问资源
- 访问 token 超时自动失效
- 允许禁用或锁定特定 client 的 token 请求权限
- 特定执行平台(如 Java)不在应用中植入 clent_secret
内容传递网路
- https://docs.microsoft.com/zh-tw/azure/architecture/best-practices/cdn
- 使用 CDN 所提供的凭证限制访问
- 使用 HTTPS 加密传输传递内容
- 有条件限制防止跨原始来源资源分享( CORS )
监视和诊断
- https://docs.microsoft.com/zh-tw/azure/architecture/best-practices/monitoring
- Prometheus与Prometheus-node-exporter的安装与配置
- 入侵检测
- IP 地址禁止
- 访问统计