
5 分鐘讀懂API技術架構
這已成為當今世界最重要的安全檢查。 如果要處理任何類型的敏感信息,加密是必須的。 最簡單的加密方式是使用 HTTPS 協議,該協議使用 TLS(傳輸層安全)握手和 SSL(安全套接字層)。
端到端加密是另一種嚴密保護傳輸中數據安全的方法。 存儲在數據庫中的數據也應加密,以防攻擊者入侵數據庫并訪問數據。
有關應用程序基礎架構的信息可能會通過詳細的錯誤信息泄露給攻擊者。 為避免這種情況,應保持錯誤信息的通用性并實施自定義錯誤處理。 確保錯誤詳細信息中不會記錄敏感的系統信息。
在處理應用程序接口時,輸入驗證是非常重要的,因為在用戶發送輸入之前,你是不知道輸入內容的。
凈化是從有效負載中刪除任何不需要的可執行代碼的過程。 攻擊者可以輸入 Javascript 腳本,如果在將其傳遞到 HTML 之前不對其進行消毒,它就會作為腳本執行并獲取數據。
不正確的 sanitization 會導致跨站腳本 (XSS) 攻擊。
入侵檢測系統又稱 IDS,有助于監控和檢測進入 API 的網絡流量。 如果它發現流量中有任何異常行為,就會記錄下來并向有關部門發出警報。
一般來說,有兩類系統:基于網絡的系統和基于主機的系統。 在基于網絡的系統中,系統分布在不同的檢查點,以監控多個點的流量。 在基于主機的系統中,系統部署在單個主機上。
此類系統是一種很好的方法,可以在誰試圖訪問您的網絡之前確定他們是否會妨礙您的數據。
IP 白名單是一種只允許選定 IP 地址訪問 API 和網絡的方法。 如果您有一個公共 API,這種技術可能不起作用,因為要列出每個 IP 太復雜了。
如果您知道只有部分系統應用程序會訪問您的應用程序接口,那么這將是非常有益的。
JWT 通常用于向用戶發送根據其憑據創建的數字簽名令牌來驗證用戶身份。 這種方法之所以有效,是因為它隱藏了用戶的實際憑據,而且無需在數據庫或用戶端存儲憑據。
JWT 可分為三個部分:頭部、有效載荷和簽名。 有效載荷部分包含用戶憑據,頭部可包含所用算法等信息。 在每次后續請求中,服務器和客戶端都會對簽名部分進行數字簽名。
JWT 通常有一個過期日期,過期后服務器會生成一個新的令牌,然后發送給用戶。
監控應用程序接口的流量有助于事先檢測和識別不受歡迎的訪問者。 您可以監控每一個請求,但要確保日志不包含任何敏感信息。
如果應用程序接口沒有實施速率限制,就很容易因意外涌入的網絡流量而遭受 DDoS 攻擊。 攻擊者可以在短時間內向系統發出大量請求,最終導致服務器崩潰。
通過限制 API 流量,節流和限速 API 可避免拒絕服務攻擊。
漏洞不僅出現在您的應用程序接口代碼中,它們也可能是您在應用程序接口中使用的任何第三方依賴項的一部分。 因此,定期監控和掃描您的依賴項并檢測其中可能存在的任何漏洞非常重要。
如果可以用修補漏洞的補丁版本更新依賴項,就可以執行計劃任務,定期掃描和更新依賴項。 此外,還要選擇更安全并提供頻繁安全更新的依賴項。
安全標頭應與 API 響應一起返回,以便向瀏覽器說明 API 的安全性以及應如何操作。 為提高安全性,您可以發送以下重要標頭:
借助預定義的安全標準和框架設計您的應用程序接口,確保您的應用程序接口符合最新的安全考慮因素。
如果使用的是不記名令牌,那么令牌的過期時間應該很短,因為它需要重新認證用戶,這是一件好事。 在 JWT 中,通常有兩種令牌:訪問令牌和刷新令牌。 刷新令牌的有效期較長,而訪問令牌的有效期較短。 無論如何,你的令牌都應該有到期時間。
WAF 又稱網絡應用程序防火墻,是一個可以監控、過濾和阻止任何惡意網絡流量的網關。 它通常是防止通過 HTTP 協議進行惡意攻擊的最佳方法。
如果想輕松設置 API 安全性并管理 API 路由及其訪問,可以選擇 API 網關。 它們還提供監控、日志和分析工具,您可以使用這些工具監控您的 API。
零信任策略背后的理念是不信任任何集中式來源。
從根本上說,任何人都不可信,即使是開發應用程序接口的開發人員。 應該監控和分析每一個網關,以防止安全漏洞。
在這種情況下,自動化就派上用場了。 您可以使用自動化工具定期監控和阻止異?;蚩梢苫顒?。
你可以盡最大努力來確保你的API安全。但軟件中總會有一些漏洞可以被利用。這些漏洞會導致零日漏洞的出現。因此,為了保護你的API,你至少應該確保它們與最新的安全標準保持更新。
原文鏈接:19 API Security Best Practices To Implement And Stay Safe