您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)開發(fā)安全的API所需要核對的清單是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
以下是當(dāng)你在設(shè)計, 測試以及發(fā)布你的 API 的時候所需要核對的重要安全措施.
不要使用 Basic Auth
使用標(biāo)準(zhǔn)的認(rèn)證協(xié)議 (比如 JWT, OAuth).
不要再造 Authentication
, token generating
, password storing
這些輪子, 使用標(biāo)準(zhǔn)的.
在登陸中使用 Max Retry
和自動封禁功能.
加密所有的敏感數(shù)據(jù).
使用隨機復(fù)雜的密鑰 (JWT Secret
) 以增加暴力破解的難度.
不要在請求體中直接提取數(shù)據(jù), 要對數(shù)據(jù)進(jìn)行加密 (HS256
or RS256
).
使 token 的過期時間盡量的短 (TTL
, RTTL
).
不要在 JWT 的請求體中存放敏感數(shù)據(jù), 它是可破解的.
始終在后臺驗證 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/xml
, application/json
...) 并在不滿足條件的時候返回 406 Not Acceptable
.
驗證 content-type
的發(fā)布數(shù)據(jù)和你收到的一樣 (如 application/x-www-form-urlencoded
, multipart/form-data
, application/json
等等... ).
驗證用戶輸入來避免一些普通的易受攻擊缺陷 (比如 XSS
, SQL-注入
, 遠(yuǎn)程代碼執(zhí)行
等等...).
不要在 URL 中使用任何敏感的數(shù)據(jù) (credentials
, Passwords
, security tokens
, or API keys
), 而是使用標(biāo)準(zhǔn)的認(rèn)證請求頭.
使用一個 API Gateway 服務(wù)來啟用緩存、訪問速率限制 (如 Quota
, Spike Arrest
, Concurrent 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-By
, Server
, X-AspNet-Version
等等.
在響應(yīng)中強制使用 content-type
, 如果你的類型是 application/json
那么你的 content-type
就是 application/json
.
不要返回敏感的數(shù)據(jù), 如 credentials
, Passwords
, security tokens
.
在操作結(jié)束時返回恰當(dāng)?shù)臓顟B(tài)碼. (比如 200 OK
, 400 Bad Request
, 401 Unauthorized
, 405 Method Not Allowed
等等...).
使用單元測試和集成測試來審計你的設(shè)計和實現(xiàn).
使用代碼審查流程并且不要自行批準(zhǔn).
在推送到生產(chǎn)環(huán)境之前確保你的服務(wù)的所有組件都被用殺毒軟件靜態(tài)地掃描過,包括第三方庫和其它依賴.
為部署設(shè)計一個回滾方案.
上述就是小編為大家分享的開發(fā)安全的API所需要核對的清單是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。