
什么是SQL注入?理解、風險與防范技巧
任何用戶輸入都可能被用來繞過您的 API 安全系統,因為它通常用于調用其他代碼。
在本節中,我們介紹了必要的安全措施,使黑客更難操縱用戶輸入來實現他們的惡意目標。
訪問控制清單:
我們再強調一下——您應該將任何用戶輸入視為黑客可能用來未經授權訪問您的 API 的功能和數據的工具。
這就是為什么驗證所有用戶輸入至關重要,無論提交輸入的用戶擁有什么權限 – 無效的用戶數據應該觸發錯誤,并且不應該由 API 處理,而有效的輸入應該滿足開發人員指定的所有標準。
掌握了這種方法,分析 API 使用者可以在哪里以及如何提交用戶輸入。分析完成后,繼續將他們可以使用的字段和數據類型限制到最低限度,而不會損害用戶體驗或縮減 API 功能。
強制執行 HTTP 方法是指限制用戶可以用來執行某項任務的 HTTP 方法范圍的做法。
例如,您的 API 使用者在請求檢查其帳戶余額時只能使用 GET 方法。在這種情況下,如果開發人員不限制 HTTP 方法,則用戶可能使用 POST、PUT 或 PATCH 方法在未經您許可的情況下修改其帳戶余額。
這個簡單的例子說明了仔細檢查用戶在執行某項任務時可以使用哪些 HTTP 方法的重要性。
任何與允許的方法不匹配的操作都將導致405 方法不允許響應。
模糊測試是一種向 API 提供大量通常格式錯誤的數據以試圖暴露 API 中的漏洞的技術。
目標是觸發和識別可能被黑客利用或導致系統崩潰的意外 API 響應。
這個簡單但功能強大的 API 測試可確保您的 API 的穩定性,并幫助您完善設計以獲得更好的性能。
以下是可用于進行 API 模糊測試的工具列表:
SQL 注入是黑客入侵系統的傳統方式之一,是指操縱數據庫查詢以實現惡意結果(竊取敏感數據或獲取編輯權限)的做法。
使用 SQL 注入測試,您可以確定是否可以將數據注入 API,以使其在數據庫中運行用戶控制的 SQL 查詢并可能訪問和操縱敏感數據。
您可以使用以下工具或以下工具的組合來測試 SQL 注入:
參數篡改攻擊是指操縱 URL 參數或表單字段數據,以未經授權訪問特定用戶不應看到的 API 數據和功能。
以下元素是參數篡改攻擊最常見的目標。
例如,當應用程序依賴隱藏字段來存儲狀態或技術數據時,黑客可以識別并修改這些字段以進行入侵。
以下是可以實施的一些安全措施,以防止參數篡改攻擊:
您的 API 的每個特性或功能都是黑客可以利用的潛在漏洞。
成功完成上面列出的三個階段后,您需要確保您的 API 能夠充分響應標準 API 測試。
雖然下面提到的大多數測試并非直接旨在提高 API 安全性,但它們中的每一個都可以指出隱藏的技術問題和漏洞,網絡犯罪分子可以利用這些問題和漏洞竊取您的敏感數據并損害您的用戶群。
API 安全檢查表:
我們在API 測試流程指南中介紹了整個流程,因此下面我們僅介紹關鍵思想。
功能測試的目標是檢查 API 的不同元素如何協同和獨立工作,以確保系統準確運轉。
一些功能測試包括:
性能測試分析當 API 流量大量激增導致系統超載時,API 在壓力下的工作情況。
最后,遵循整個清單后,您需要使用兩種最常見的 API 安全測試方法來測試整個 API:滲透測試和漏洞掃描。
滲透測試(也稱為道德黑客)模擬 API 攻擊以發現黑客可以利用的漏洞 – 而漏洞掃描使用行業標準指南(例如OWASP Top 10 API 安全列表)針對最流行的 API 安全漏洞分析您的 API。
盡管該清單詳盡地涵蓋了各種 API 漏洞,但它遠不足以保護您免受黑客不斷發展的技術和方法的攻擊。
這主要因為任何 API 都是一個復雜的系統,其中幾乎每個元素都可能以某種方式被黑客濫用。
此外,無論您的清單實際上有多詳細,它都無法有效解決最危險類型的 API 漏洞——業務邏輯缺陷。
當您的用戶可以濫用 API 的合法功能來竊取您的數據或執行他們不允許執行的操作時,并不需要黑客來造成損害 – 每個 API 消費者都會成為真正的威脅。
那么,世界上一些最大的科技公司是如何解決這個問題的呢?幸運的是,我們知道答案。
手動安全測試需要花費大量的時間和資源 – 而且每年只能進行幾次。
文章來源:API Security Checklist: What You Need To Know