溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

開發(fā)安全的API所需要核對的清單是什么

發(fā)布時間:2022-01-14 21:15:09 來源:億速云 閱讀:109 作者:柒染 欄目:云計算

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)開發(fā)安全的API所需要核對的清單是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

以下是當(dāng)你在設(shè)計, 測試以及發(fā)布你的 API 的時候所需要核對的重要安全措施.


身份認(rèn)證

  •  不要使用 Basic Auth 使用標(biāo)準(zhǔn)的認(rèn)證協(xié)議 (比如 JWT, OAuth).

  •  不要再造 Authenticationtoken generatingpassword storing 這些輪子, 使用標(biāo)準(zhǔn)的.

  •  在登陸中使用 Max Retry 和自動封禁功能.

  •  加密所有的敏感數(shù)據(jù).

JWT (JSON Web Token)

  •  使用隨機復(fù)雜的密鑰 (JWT Secret) 以增加暴力破解的難度.

  •  不要在請求體中直接提取數(shù)據(jù), 要對數(shù)據(jù)進(jìn)行加密 (HS256 or RS256).

  •  使 token 的過期時間盡量的短 (TTLRTTL).

  •  不要在 JWT 的請求體中存放敏感數(shù)據(jù), 它是可破解的.

OAuth 授權(quán)或認(rèn)證協(xié)議

  •  始終在后臺驗證 redirect_uri, 只允許白名單的 URL.

  •  每次交換令牌的時候不要加 token (不允許 response_type=token).

  •  使用 state 參數(shù)并填充隨機的哈希數(shù)來防止跨站請求偽造(CSRF).

  •  對不同的應(yīng)用分別定義默認(rèn)的作用于和各自有效的作用域參數(shù).

訪問

  •  限制流量來防止 DDoS 攻擊和暴力攻擊.

  •  在服務(wù)端使用 HTTPS 協(xié)議來防止 MITM 攻擊.

  •  使用 HSTS 協(xié)議防止 SSLStrip 攻擊.

輸入

  •  使用與操作相符的 HTTP 操作函數(shù), GET (讀取)POST (創(chuàng)建)PUT (替換/更新) 以及 DELETE (刪除記錄),如果請求的方法不適用于請求的資源則返回 405 Method Not Allowed.

  •  在請求頭中的 content-type 字段使用內(nèi)容驗證來只允許支持的格式 (比如 application/xmlapplication/json ...) 并在不滿足條件的時候返回 406 Not Acceptable.

  •  驗證 content-type 的發(fā)布數(shù)據(jù)和你收到的一樣 (如 application/x-www-form-urlencodedmultipart/form-dataapplication/json 等等... ).

  •  驗證用戶輸入來避免一些普通的易受攻擊缺陷 (比如 XSSSQL-注入遠(yuǎn)程代碼執(zhí)行 等等...).

  •  不要在 URL 中使用任何敏感的數(shù)據(jù) (credentialsPasswordssecurity tokens, or API keys), 而是使用標(biāo)準(zhǔn)的認(rèn)證請求頭.

  •  使用一個 API Gateway 服務(wù)來啟用緩存、訪問速率限制 (如 QuotaSpike ArrestConcurrent Rate Limit) 以及動態(tài)地部署 APIs resources.

處理

  •  檢查是否所有的終端都在身份認(rèn)證之后, 以避免被破壞了的認(rèn)證體系.

  •  避免使用特有的資源 id. 使用 /me/orders 替代 /user/654321/orders

  •  使用 UUID 代替自增長的 id.

  •  如果需要解析 XML 文件, 確保實體解析(entity parsing)是關(guān)閉的以避免XXE攻擊.

  •  如果需要解析 XML 文件, 確保實體擴展(entity expansion)是關(guān)閉的以避免通過指數(shù)實體擴展攻擊實現(xiàn)的Billion Laughs/XML bomb.

  •  在文件上傳中使用 CDN.

  •  如果需要處理大量的數(shù)據(jù), 使用 Workers 和 Queues 來快速響應(yīng), 從而避免 HTTP 阻塞.

  •  不要忘了把 DEBUG 模式關(guān)掉.

輸出

  •  發(fā)送 X-Content-Type-Options: nosniff 頭.

  •  發(fā)送 X-Frame-Options: deny 頭.

  •  發(fā)送 Content-Security-Policy: default-src 'none' 頭.

  •  刪除指紋頭 - X-Powered-ByServerX-AspNet-Version 等等.

  •  在響應(yīng)中強制使用 content-type, 如果你的類型是 application/json 那么你的 content-type 就是 application/json.

  •  不要返回敏感的數(shù)據(jù), 如 credentialsPasswordssecurity tokens.

  •  在操作結(jié)束時返回恰當(dāng)?shù)臓顟B(tài)碼. (比如 200 OK400 Bad Request401 Unauthorized405 Method Not Allowed 等等...).

持續(xù)集成和持續(xù)部署

  •  使用單元測試和集成測試來審計你的設(shè)計和實現(xiàn).

  •  使用代碼審查流程并且不要自行批準(zhǔn).

  •  在推送到生產(chǎn)環(huán)境之前確保你的服務(wù)的所有組件都被用殺毒軟件靜態(tài)地掃描過,包括第三方庫和其它依賴.

  •  為部署設(shè)計一個回滾方案.

上述就是小編為大家分享的開發(fā)安全的API所需要核對的清單是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

api
AI