開發注意事項

在此提醒一些開始時注意事項

以下規則外包務必遵守
  1. 前台環境處理頁面跟串接第三方 API,不碰資料庫
  2. API 環境處理資料庫並跟前台環境串接
  3. 共用設定檔
    • 前台環境:使用 Laravel 預設的 .env 檔
    • API 環境:放在專案資料夾根目錄的 config.js
    • 環境設定檔分 develop 跟 production,production debug 為 false
  4. API 資料庫連線程式統一一支檔案處理,其他檔案不要寫連接資料庫程式
  5. 敏感欄位加密(如會員姓名、手機、地址之類),密碼欄位使用不可逆加密(MD5、SHA1 不建議使用)
  6. 避免 SQL Injection
    • 使用 prepared query
  7. 避免跨站腳本攻擊(Cross-Site Scripting, XSS)
    • 過濾欄位參數傳入格式
    • 輸出成 html 顯示給使用者時,用 htmlentities($var, ENT_QUOTES) 轉換特殊字元,Laravel 的 blade 模板中使用 {{ $var }} 即可
  8. 避免網頁回應表頭惡意切割(HTTP Response Header Splitting)
    • 過濾 header 裡面的換行字元(%0d%0a 或 %0a)
  9. 避免竊取 cookie (cookie Hijacking)
    • httponly flag 設定為 true,指定 cookie 不能被 javascript 存取
    • secure flag 設定為 true,指定 cookie 只能透過 https 傳輸
  10. 避免跨站請求偽造(Cross-site request forgery)
    • 表單加入 csrf token 驗證
  11. 程式不得植入後門
  12. 賣場、商品等不用登入的開放性頁面需放 SEO 必要欄位和 Facebook 的 Open Graph
  13. API 機制:
    • API 架構:RESTful API
      • GET:取得內容
      • PUT:更新內容
      • POST:建立內容
      • DELETE:刪除內容
    • API 驗證:JWT(Json Web Token)
    • 社群相關認證:OAuth 2.0
    • SSO:SAML 2.0
    • SOAP:不採用
  14. 註解:
    • 前端程式 JavaScript、CSS、HTML 不寫入具名的註解或開發時間或商業邏輯
    • production 版本檔案必須 minify

results matching ""

    No results matching ""