API安全(一)-常見的安全機制


1、什么是API?

百度百科給出的定義如下:

  API(Application Programming Interface,應用程序接口)是一些預先定義的函數,或指軟件系統不同組成部分銜接的約定。 目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無需訪問原碼,或理解內部工作機制的細節。

  通俗的來理解就是提供給用戶服務的一種方式,對於我們Java后台開發人員來說,就是我們給前端或者其他項目提供的接口,供他們進行使用。如果API出了問題,那么就不能為用戶提供服務了。 

2、API安全包含幾方面的內容?

  主要包含三方面內容:信息安全、網絡安全、應用安全。

    信息安全:所有的信息,在它的整個生命周期里(創建-存儲-轉換-銷毀等)應該是受到保護的。(比如使用訪問控制技術,加密解密技術等來保證信息是安全)

    網絡安全:數據在進行網絡傳輸的過程中,是安全的。不會被人盜取、串改。不會被未授權的訪問接觸到不應該接觸的信息。(比如使用 防火牆,負載均衡器,反向代理等,https等來保證網絡安全)

    應用安全:程序的設計上如何抵擋各種各樣的攻擊。(開發測試時需要注意的問題,如何存儲管理用戶信息,如何校驗)

   

  這三個方面綜合起來,可以說我們的API是安全的。

3、API安全的目標

  機密性(Confientiality):確保信息只被預期的讀者訪問。

  完整性(Integrity):防止未授權的創建,修改和刪除。

  可用性(Availability):當用戶需要訪問API時,API總是可用的。

4、常見的API風險

  欺騙(Spoofing):偽裝成某人。

  干預(Tampering):將不希望被修改的數據、消息或設置改掉。

  否認(Repudiation):拒絕承認做過某事。

  信息泄漏(Information disclosure):將你希望保密的信息披露出來。

  拒絕服務(Denial of service):阻止用戶訪問信息和服務。

  越權(Elevation of privilege):做了你不希望他能做的事。

5、解決API風險的安全機制

  認證:(欺騙),確保你的用戶或客戶端真的是他們自己。

  授權:(信息泄漏、干預、越權),確保每個針對API的訪問都是經過授權的。

  審計:(否認),確保所有的操作都被記錄,以便追溯和監控。

  流控:(拒絕服務),防止用戶請求淹沒API。

  加密:(信息泄漏),確保出入API的數據都是私密的。

    

  結合上面的圖,我們可以更好的理解安全機制,最右面的是我們提供的API,最左邊是用戶,在這之間就需要我們加入安全機制。首先加密是貫穿在整個安全機制流程種的;然后是流控,可以把一些不必要的請求攔截掉,不用走后面的流程;接下來是認證,來確保用戶的身份;然后是審計,將用戶做了什么記錄下來;最后是授權,來決定請求是否可以被執行。

 

原文連接: https://github.com/caofanqi/study-security/blob/master/doc/1、API安全-常見的安全機制.md

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM