雲端主機部署安全原則
服務器硬件實體建置安全部署 例如:安全組限制訪問,端口轉發限制,僅允許外網訪問 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 地址禁止
- 訪問統計