--- tags: security,api --- # Top 12 Tips For API Security 整理From ByteByteGo https://www.youtube.com/watch?v=6WZ6S-qmtqY ## API定義 Cloudflare對API的定義簡而易懂 **應用程式開發介面 (API) 是一組規則,允許一個軟體程式將資料傳輸到另一個軟體程式。** ## 12 Tips for API security ### 1.Use HTTPS 加密傳輸避免竊聽或是中間人攻擊,保護敏感資訊(如Api key、Token、個資) ### 2.Use OAuth2 讓第三方應用程式(e.g. Google)驗證身分,User取得Token後對API進行調用。好處是因為user不用輸入帳密、後端也不用儲存帳密 ### 3.Use WebAuthn 也稱[Web Authentication](https://www.w3.org/TR/webauthn-3/) WebAuthn是FIDO2標準的一部分,專注於網頁瀏覽器和網站如何實現安全的身份驗證。它允許網站使用公鑰加密技術來註冊和驗證用戶,用戶可以使用各種驗證器,如安全密鑰、指紋識別或人臉識別等生物特徵。 ### 4.Use Leveled API keys 對所有服務都使用同一把API key可能導致風險,所以可針對permission、scope或是Read only/Write/Admin等設定不同的API key,並加上API key過期時間來降低風險 ### 5.Implement Authorization 縱使User通過身分驗證,也要執行Role-base access control e.g. Viewer、Editor => 最小化特權 ### 6.Rate Limiting 避免惡意攻擊如暴力破解、DoS等,也可維持系統的Performance及可用性 ### 7.API Versioning 透過API版控來更新功能且不影響現有的運作,並針對每一版做好變更管理 ### 8.Allowlisting 預先定義受信任實體來存取服務,e.g. IP、User ID、API keys ### 9.Check OWASP API Security Risks 參閱 https://owasp.org/API-Security/editions/2023/en/0x11-t10/ ### 10.Use API Gateway API Gateway提供了一個集中層(centralized layer)加強安全性,將security policy、Rate Limiting、Authorization整合於API Gateway中,此外也可提供額外功能如流量管理、快取、日誌紀錄、監控等 ### 11.Error Handling 錯誤處理關係到使用者體驗與API安全 * Internal server error => X * Failed to retrieve user data.Please check that you are authenticated and have sufficient permissions => O 提供所需的資訊而不是曝露敏感資訊 * SQL query failed due to ...=> X * Invalid input provided.Please review and try again =>O 盡可能不要回覆**400 Bad Request** or **500 Internal server error** ### 12 Input Validation 對所有輸入資料進行驗證,包含**Request parameter、Header、Payload**等等使用者可以輸入的資訊,避免各種injection攻擊 除了在client端驗證輸入外,Server端 "**也要**" 使用專門的Validation libraries或框架
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up