這已成為當(dāng)今世界最重要的安全檢查。 如果要處理任何類型的敏感信息,加密是必須的。 最簡單的加密方式是使用 HTTPS 協(xié)議,該協(xié)議使用 TLS(傳輸層安全)握手和 SSL(安全套接字層)。

端到端加密是另一種嚴(yán)密保護(hù)傳輸中數(shù)據(jù)安全的方法。 存儲在數(shù)據(jù)庫中的數(shù)據(jù)也應(yīng)加密,以防攻擊者入侵?jǐn)?shù)據(jù)庫并訪問數(shù)據(jù)。

Error Handling錯誤處理

有關(guān)應(yīng)用程序基礎(chǔ)架構(gòu)的信息可能會通過詳細(xì)的錯誤信息泄露給攻擊者。 為避免這種情況,應(yīng)保持錯誤信息的通用性并實施自定義錯誤處理。 確保錯誤詳細(xì)信息中不會記錄敏感的系統(tǒng)信息。

Input Validation and Data Sanitization輸入驗證和數(shù)據(jù)凈化

在處理應(yīng)用程序接口時,輸入驗證是非常重要的,因為在用戶發(fā)送輸入之前,你是不知道輸入內(nèi)容的。

凈化是從有效負(fù)載中刪除任何不需要的可執(zhí)行代碼的過程。 攻擊者可以輸入 Javascript 腳本,如果在將其傳遞到 HTML 之前不對其進(jìn)行消毒,它就會作為腳本執(zhí)行并獲取數(shù)據(jù)。

不正確的 sanitization 會導(dǎo)致跨站腳本 (XSS) 攻擊。

Intrusion Detection Systems入侵檢測系統(tǒng)

入侵檢測系統(tǒng)又稱 IDS,有助于監(jiān)控和檢測進(jìn)入 API 的網(wǎng)絡(luò)流量。 如果它發(fā)現(xiàn)流量中有任何異常行為,就會記錄下來并向有關(guān)部門發(fā)出警報。

一般來說,有兩類系統(tǒng):基于網(wǎng)絡(luò)的系統(tǒng)和基于主機(jī)的系統(tǒng)。 在基于網(wǎng)絡(luò)的系統(tǒng)中,系統(tǒng)分布在不同的檢查點(diǎn),以監(jiān)控多個點(diǎn)的流量。 在基于主機(jī)的系統(tǒng)中,系統(tǒng)部署在單個主機(jī)上。

此類系統(tǒng)是一種很好的方法,可以在誰試圖訪問您的網(wǎng)絡(luò)之前確定他們是否會妨礙您的數(shù)據(jù)。

IP Whitelisting IP白名單

IP 白名單是一種只允許選定 IP 地址訪問 API 和網(wǎng)絡(luò)的方法。 如果您有一個公共 API,這種技術(shù)可能不起作用,因為要列出每個 IP 太復(fù)雜了。

如果您知道只有部分系統(tǒng)應(yīng)用程序會訪問您的應(yīng)用程序接口,那么這將是非常有益的。

JSON Web Tokens JSON Web令牌

JWT 通常用于向用戶發(fā)送根據(jù)其憑據(jù)創(chuàng)建的數(shù)字簽名令牌來驗證用戶身份。 這種方法之所以有效,是因為它隱藏了用戶的實際憑據(jù),而且無需在數(shù)據(jù)庫或用戶端存儲憑據(jù)。

JWT 可分為三個部分:頭部、有效載荷和簽名。 有效載荷部分包含用戶憑據(jù),頭部可包含所用算法等信息。 在每次后續(xù)請求中,服務(wù)器和客戶端都會對簽名部分進(jìn)行數(shù)字簽名。

JWT 通常有一個過期日期,過期后服務(wù)器會生成一個新的令牌,然后發(fā)送給用戶。

Logging and Monitoring記錄和監(jiān)控

監(jiān)控應(yīng)用程序接口的流量有助于事先檢測和識別不受歡迎的訪問者。 您可以監(jiān)控每一個請求,但要確保日志不包含任何敏感信息。

Rate Limiting速率限制

如果應(yīng)用程序接口沒有實施速率限制,就很容易因意外涌入的網(wǎng)絡(luò)流量而遭受 DDoS 攻擊。 攻擊者可以在短時間內(nèi)向系統(tǒng)發(fā)出大量請求,最終導(dǎo)致服務(wù)器崩潰。

通過限制 API 流量,節(jié)流和限速 API 可避免拒絕服務(wù)攻擊。

Secure Dependencies安全依賴

漏洞不僅出現(xiàn)在您的應(yīng)用程序接口代碼中,它們也可能是您在應(yīng)用程序接口中使用的任何第三方依賴項的一部分。 因此,定期監(jiān)控和掃描您的依賴項并檢測其中可能存在的任何漏洞非常重要。

如果可以用修補(bǔ)漏洞的補(bǔ)丁版本更新依賴項,就可以執(zhí)行計劃任務(wù),定期掃描和更新依賴項。 此外,還要選擇更安全并提供頻繁安全更新的依賴項。

Security Headers安全標(biāo)頭

安全標(biāo)頭應(yīng)與 API 響應(yīng)一起返回,以便向瀏覽器說明 API 的安全性以及應(yīng)如何操作。 為提高安全性,您可以發(fā)送以下重要標(biāo)頭:

Security Standards and Frameworks安全標(biāo)準(zhǔn)和框架

借助預(yù)定義的安全標(biāo)準(zhǔn)和框架設(shè)計您的應(yīng)用程序接口,確保您的應(yīng)用程序接口符合最新的安全考慮因素。

Token Expiry

如果使用的是不記名令牌,那么令牌的過期時間應(yīng)該很短,因為它需要重新認(rèn)證用戶,這是一件好事。 在 JWT 中,通常有兩種令牌:訪問令牌和刷新令牌。 刷新令牌的有效期較長,而訪問令牌的有效期較短。 無論如何,你的令牌都應(yīng)該有到期時間。

Web Application Firewall網(wǎng)絡(luò)應(yīng)用防火墻

WAF 又稱網(wǎng)絡(luò)應(yīng)用程序防火墻,是一個可以監(jiān)控、過濾和阻止任何惡意網(wǎng)絡(luò)流量的網(wǎng)關(guān)。 它通常是防止通過 HTTP 協(xié)議進(jìn)行惡意攻擊的最佳方法。

Using API Gateways使用應(yīng)用程序接口網(wǎng)關(guān)

如果想輕松設(shè)置 API 安全性并管理 API 路由及其訪問,可以選擇 API 網(wǎng)關(guān)。 它們還提供監(jiān)控、日志和分析工具,您可以使用這些工具監(jiān)控您的 API。

Zero-Trust

零信任策略背后的理念是不信任任何集中式來源。

從根本上說,任何人都不可信,即使是開發(fā)應(yīng)用程序接口的開發(fā)人員。 應(yīng)該監(jiān)控和分析每一個網(wǎng)關(guān),以防止安全漏洞。

在這種情況下,自動化就派上用場了。 您可以使用自動化工具定期監(jiān)控和阻止異常或可疑活動。

最后

你可以盡最大努力來確保你的API安全。但軟件中總會有一些漏洞可以被利用。這些漏洞會導(dǎo)致零日漏洞的出現(xiàn)。因此,為了保護(hù)你的API,你至少應(yīng)該確保它們與最新的安全標(biāo)準(zhǔn)保持更新。

原文鏈接:19 API Security Best Practices To Implement And Stay Safe

上一篇:

5 分鐘讀懂API技術(shù)架構(gòu)

下一篇:

進(jìn)一步理解API和SDK的區(qū)別及關(guān)系
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費(fèi)