chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

什么是API?API接口表現(xiàn)形式分類理論

jf_vLt34KHi ? 來源:Tide安全團隊 ? 2023-05-10 15:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.什么是API

API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數(shù),目的是提供應用程序與開發(fā)人員基于某軟件或硬件的以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機制的細節(jié)。通過API,就算不知道如何操作,也能將產(chǎn)品或服務與其他產(chǎn)品或服務進行互通。這樣就可以簡化應用開發(fā),節(jié)省時間和成本。

API除了有應用“應用程序接口”的意思外,還特指 API的說明文檔,也稱為幫助文檔。 API作為應用編程接口,由應用程序來調(diào)用,提供API的稱為提供者,使用API的稱為消費者。API本質(zhì)上是一個程序(程序1)中,專門用于與其他應用程序(程序2)進行交互的部分,也就是程序1的外部對接部門。程序員所編寫的程序2可以通過API程序的函數(shù)聲明來和程序1進行交互。API 由一個或多個方法組成,每個方法可以實現(xiàn)一個功能,比如發(fā)送消息,上傳文件,檢索消息等。 定義和作用看起來有些晦澀難懂,我們可以類比一個常見且熟悉的接口User Interface(縮寫為 UI)即用戶接口。UI本質(zhì)上是一個系統(tǒng)中專門用于與人類使用者進行交互的部分。

UI可以是一個實物上的面板,也可以是由程序所驅(qū)動的顯示在屏幕上的界面。我們使用的應用一般有是圖形化界面的,都可以看作是一種用戶接口,比如按鈕,窗口,圖標等可視化組件。UI 定義了人與應用程序進行交互的方式。UI 由多個可視化組件構成,每個組件提供不同的交互方式,比如,在文本框中可以輸入一些消息,點擊按鈕可以發(fā)送消息等。 總之,API定義了應用程序與應用程序之間的交互,UI定義了人與應用程序之間的交互,并且兩種交互方式又相互關聯(lián),用戶操作 UI 表達要實現(xiàn)的功能,而 UI 使用 API 來實際完成該功能。

e7220a1e-eda0-11ed-90ce-dac502259ad0.jpg

2.API的分類

(1)根據(jù)API提供者和消費者所在的位置,可將API分為兩類:本地API:當API的提供者和消費者位于同一臺計算機上時,稱為本地API。遠程API:當API的提供者和消費者位于不同的計算機上時,稱為遠程API。 (2)根據(jù)API接口表現(xiàn)形式分類:

接口 協(xié)議 說明
HTTP接口 HTTP 當發(fā)起Http請求時,Http會通過TCP建立起一個到服務器的連接通道,在請求需要的數(shù)據(jù)完畢后,Http會立即將TCP連接斷開,Http連接是一種短連接、無狀態(tài)的連接。
RPC接口 HTTP、TCP、UDP、自定義協(xié)議 RPC遠程過程調(diào)用協(xié)議,它本質(zhì)上是一種Client/Server模式,就相當于調(diào)用本地接口一樣調(diào)用遠程服務的接口,支持多種數(shù)據(jù)傳輸方式,如Json、XML、Binary等。
WebService接口 SOAP協(xié)議通過XML封裝數(shù)據(jù),Http協(xié)議傳輸數(shù)據(jù) WebService是一個應用程序向外界暴露出一個能通過Web進行調(diào)用的API,也就是系統(tǒng)對外的接口,使用XML來封裝數(shù)據(jù),不依賴于語言,不依賴于平臺。
RESTFUL HTTP RESTFUL一種設計準則,而不是一種規(guī)范,用不同的HTTP動詞(如:GET、POST、DELETE、PUT)來表達不同的請求,降低開發(fā)的復雜性,提高系統(tǒng)的可伸縮性。
WebSocket TCP、UDP WebSocket是一個持久化的雙向通信協(xié)議,可實現(xiàn)客戶端和服務器端之間即時通訊。在WebSocket中,客戶端和服務器只需要完成一次握手,就可以創(chuàng)建持久性的連接,并進行雙向數(shù)據(jù)傳輸。
FTP TCP/IP協(xié)議組中的協(xié)議之一 FTP是文件傳輸協(xié)議,F(xiàn)TP協(xié)議包括兩個組成部分,其一為FTP服務器(存儲文件),其二為FTP客戶端。

(3)根據(jù)API接口訪問形式分類:

訪問形式 說明 應用
使用用戶令牌,通過Web API接口進行數(shù)據(jù)訪問 可以有效識別用戶的身份,為用戶接口返回用戶相關的數(shù)據(jù)。 用戶信息維護、密碼修改、用戶管理等與用戶信息相關的數(shù)據(jù)
使用安全簽名進行數(shù)據(jù)提交 這種方式提交的數(shù)據(jù),URL連接的簽名參數(shù)是經(jīng)過安全一定規(guī)則的加密的,服務器收到數(shù)據(jù)后也經(jīng)過同樣規(guī)則的安全加密,確認數(shù)據(jù)沒有被中途篡改后,再進行數(shù)據(jù)修改處理??梢詾椴煌尤敕绞?Web/APP/Winfrom等),指定不同的加密秘鑰,秘鑰是雙方約定的,并不在網(wǎng)絡連接上傳輸,連接傳輸?shù)囊话闶沁@個接入的AppID,服務器通過這個AppID來進行簽名參數(shù)的加密對比,微信后臺的回調(diào)處理機制就類似于這種處理方式。 獲取令牌、用戶注冊、處理業(yè)務數(shù)據(jù)等
提供公開的接口調(diào)用,不需要傳入用戶令牌、或者對參數(shù)進行加密簽名 這種接口一般較少,只是提供一些很常規(guī)的數(shù)據(jù)顯示而已。 查詢系統(tǒng)版本、時間、天氣等數(shù)據(jù)

3.API安全

API安全基于多種安全規(guī)則的交叉,如下圖所示。

e73a80bc-eda0-11ed-90ce-dac502259ad0.jpg

API安全的目標(CIA):

安全目標用于定義安全對于保護資產(chǎn)的實際意義。安全沒有統(tǒng)一的定義,有些場景中的定義可能是沖突的。從系統(tǒng)正確運行時希望達到或保持的安全目標出發(fā),可以拆分安全目標。一些標準的安全目標幾乎適用于所有的系統(tǒng),其中最著名的是“CIA三元組”: 機密性(Confientiality):確保信息只被預期的讀者訪問; 完整性(Integrity):防止未授權的創(chuàng)建,修改和刪除; 可用性(Availability):當用戶需要訪問API時,API總是可用的。 這三條原則始終很重要,在其他情景中,有一些原則和以上三條一樣重要。比如accountability/可追責(誰做了什么)或者non-repudiation/抗抵賴(不能否認做過的行為)等。

常見的API風險(STRIDE):

欺騙(Spoofing):偽裝成某人; 干預(Tampering):將不希望被修改的數(shù)據(jù)、消息或設置改掉; 否認(Repudiation):拒絕承認做過的事; 信息泄露(Information disclosure):將你希望保密的信息披露出來; 拒絕服務(Denial of service):阻止用戶訪問信息和服務; 越權(Elevation ofprivilege):做了你不希望他能做的事。

風險與安全機制的對應關系:

認證=>欺騙:確保你的用戶或客戶端真的是他(它)們自己 ; 授權=>信息泄漏/干預/越權:確保每個針對API的訪問都是經(jīng)過授權的; 審計=>否認:確保所有的操作都被記錄,以便追溯和監(jiān)控; 流控=>拒絕服務:防止用戶請求淹沒你的API; 加密=>信息泄漏:確保出入API的數(shù)據(jù)是私密的。

4.API安全威脅

OWASP API 安全性十大威脅: 對象級別授權中斷:對于未使用適當級別的授權保護的 API 對象,可能會因為較弱的對象訪問標識符而容易發(fā)生數(shù)據(jù)泄漏和未經(jīng)授權的數(shù)據(jù)操作。例如,攻擊者可以利用一個可迭代的整數(shù)對象標識符。

用戶身份驗證中斷:身份驗證機制的實現(xiàn)通常不正確或缺失,使得攻擊者可以利用實現(xiàn)缺陷來訪問數(shù)據(jù)。

過多的數(shù)據(jù)暴露:惡意行動者會試圖直接訪問 API(可能通過重播有效請求),或者嗅探服務器和 API 之間的流量。對 API 操作和可用數(shù)據(jù)的分析可能會為攻擊者生成敏感數(shù)據(jù),而這些敏感數(shù)據(jù)并沒有展示在前端應用程序中,也沒有被前端應用程序使用。

缺少資源和速率限制:缺少速率限制可能會導致數(shù)據(jù)外泄或?qū)蠖朔盏某晒?DDoS 攻擊,進而導致所有使用者的服務中斷。

功能級別授權中斷:具有不同層次結(jié)構、組和角色的復雜訪問控制策略,以及管理功能和常規(guī)功能之間不明確的分離,都會導致授權缺陷。通過利用這些問題,攻擊者可以訪問其他用戶的資源或管理功能。

大量分配:如果一個 API 提供的字段超過了客戶端對給定操作的需求,攻擊者可能會注入過多的屬性來對數(shù)據(jù)執(zhí)行未經(jīng)授權的操作。攻擊者可以通過檢查請求和響應或其他 API 的格式來發(fā)現(xiàn)未記錄的屬性,或進行猜測。如果你不使用強類型的編程語言,則此漏洞尤其適用。

安全配置錯誤:攻擊者可能會試圖利用安全配置錯誤漏洞,例如:缺少安全強化措施、啟用了不必要的功能、不必要地向 Internet 開放了網(wǎng)絡連接、使用了弱協(xié)議或密碼、可能允許未經(jīng)授權地訪問系統(tǒng)的其他設置或終結(jié)點。

注入:接受用戶數(shù)據(jù)的任何終結(jié)點都可能會受到注入攻擊。示例包括但不限于:命令注入,其中惡意行動者試圖更改 API 請求以在托管 API 的操作系統(tǒng)上執(zhí)行命令;SQL 注入,其中惡意行動者試圖更改 API 請求以針對 API 依賴的數(shù)據(jù)庫執(zhí)行命令和查詢。

資產(chǎn)管理不當:與不當?shù)馁Y產(chǎn)管理相關的漏洞包括:缺少適當?shù)?API 文檔或所有權信息、舊版 API 過多,可能缺少安全修補程序。

日志記錄和監(jiān)視不足:如果日志記錄和監(jiān)視不足,加上與事件響應的整合缺失或無效,攻擊者就能夠進一步攻擊系統(tǒng)、保持持久性、轉(zhuǎn)向更多系統(tǒng)進行篡改,以及提取或銷毀數(shù)據(jù)。大多數(shù)違反行為研究表明,檢測到違反行為的時間超過 200 天,通常是由外部方而不是通過內(nèi)部流程或監(jiān)視方式檢測到的。

e76de0f6-eda0-11ed-90ce-dac502259ad0.png

5.API協(xié)議

SOAP:簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP),它是廣泛使用的最古老的以 Web 為中心的 API 協(xié)議。SOAP 于 1990 年代后期推出,是最早設計用于允許不同應用程序或服務使用網(wǎng)絡連接以系統(tǒng)方式共享資源的協(xié)議之一。SOAP 代表簡單對象訪問協(xié)議,是一種基于 XML 的消息傳遞與通信協(xié)議。必須創(chuàng)建 XML 文檔才能進行調(diào)用,而 SOAP 所需的 XML 格式并不完全直觀。這就會使得調(diào)用和調(diào)試變得困難,因為調(diào)試需要解析長字符串的復雜數(shù)據(jù)。另一方面,SOAP 依賴于標準協(xié)議,尤其是 HTTP 和 SMTP,并為 Web 服務提供數(shù)據(jù)傳輸。SOAP 的整個消息都是被寫在 XML 中的,因此它能夠獨立于各種語言在所有操作系統(tǒng)上都可用。

REST:表述性狀態(tài)傳遞(Representational State Transfer),由Roy Fielding在2000年的一篇論文中引入,其目標是解決SOAP的一些缺點。REST是基于 HTTP 協(xié)議的 Web 標準架構,REST相比于SOAP更靈活,因為它支持多種數(shù)據(jù)格式,而不需要 XML。遵循REST架構約束的Web API 被稱為RESTful API。對于開發(fā)人員來說,RESTful 架構是理解 API 功能和行為的最簡單工具之一。它不但能夠使得 API 架構易于維護和擴展,而且方便了內(nèi)、外部開發(fā)人員去訪問 API。REST與SOAP又有著根本的區(qū)別,SOAP是一種協(xié)議,而REST是一種架構模式。這意味著RESTful Web API沒有官方標準。只要API 符合RESTful系統(tǒng)的6個導向性約束,就算作RESTful API:客戶端/服務器架構、無狀態(tài)、可緩存性、分層系統(tǒng)、統(tǒng)一接口、按需代碼(可選)。

JSON-RPC:JSON-RPC,是一個無狀態(tài)且輕量級的遠程過程調(diào)用(RPC)傳送協(xié)議,其傳遞內(nèi)容透過 JSON 為主。相較于一般的 REST 透過網(wǎng)址(如 GET /user)調(diào)用遠程服務器,JSON-RPC 直接在內(nèi)容中定義了欲調(diào)用的函數(shù)名稱(如 {"method": "getUser"}),這也令開發(fā)者不會陷于該使用 PUT 或者 PATCH 的問題之中。

gRPC:gRPC 是一個開源 API,也屬于 RPC 的范疇,是一個高性能,開源和通用的RPC框架,基于Protobuf序列化協(xié)議開發(fā),且支持眾多開發(fā)語言。面向服務端和協(xié)議端,基于http/2設計,帶來諸如雙向流,流控,頭部壓縮,單TCP連接上的多路復用請求等特性。這些特性使得其在移動設備上表現(xiàn)的更好,更省電和節(jié)省空間。在gPRC里客戶端可以向調(diào)用本地對象一樣直接調(diào)用另一臺不同機器上服務端應用的方法,使得您能夠更容易地創(chuàng)建分布式應用和服務。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1590

    瀏覽量

    63926
  • 編程接口
    +關注

    關注

    1

    文章

    38

    瀏覽量

    8145

原文標題:API安全基礎理論

文章出處:【微信號:Tide安全團隊,微信公眾號:Tide安全團隊】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    數(shù)據(jù)的表現(xiàn)形式與運算

    在定義變量時需要指定變量的類型。常量也是區(qū)分類型的。因為數(shù)據(jù)都是存放在內(nèi)存中的單元中的,它 是具體存在的,而存儲單元是有限制大小字節(jié)的,每一個存儲單元存放數(shù)據(jù)的范圍是有限的。
    的頭像 發(fā)表于 10-12 11:45 ?1469次閱讀

    編程是一種思維方式,而代碼是一種表現(xiàn)形式,硬件只不過是對思維方式的物理體現(xiàn)

    編程是一種思維方式,而代碼是一種表現(xiàn)形式,硬件只不過是對思維方式的物理體現(xiàn)關于這句話,你怎么看?
    發(fā)表于 08-25 13:18

    電梯的干擾表現(xiàn)形式有哪幾種?

    電梯干擾產(chǎn)生的原理是什么?電梯的干擾表現(xiàn)形式有哪幾種?網(wǎng)線綁扎時注意事項有哪些?雙絞線布線施工注意事項有哪些?
    發(fā)表于 06-02 06:19

    can線問題具體表現(xiàn)形式

    目錄前言can線問題具體表現(xiàn)形式:軟件問題:1.速率2.管腳3.中斷回調(diào)總結(jié)前言經(jīng)過一段時間的stm32的學習,個人總結(jié)了一些常見問題,這篇文章就主要寫一下在can線上遇到的問題。can線
    發(fā)表于 08-06 09:37

    安川變頻器在出現(xiàn)故障代碼時有哪幾種表現(xiàn)形式

    一、安川變頻器故障代碼表現(xiàn)形式安川變頻器在出現(xiàn)故障代碼時,一共有三種表現(xiàn)形式:1、故障檢出故障時,會出現(xiàn)以下狀況。LED 操作器上出現(xiàn)表示故障內(nèi)容的文字,ALM 指示燈點亮。變頻器輸出被切斷,電機
    發(fā)表于 09-03 08:45

    什么是API/DS3D

    什么是API/DS3D API是編程接口的含義,其中包含著許多關于聲音定位與處理的指令與規(guī)范。它的性能將直接影響三維音效的表現(xiàn)
    發(fā)表于 02-05 09:48 ?657次閱讀

    API-Shop-OCR-營業(yè)執(zhí)照識別API接口Python調(diào)用示例代碼說明

    本文檔的主要內(nèi)容詳細介紹的是API-Shop-OCR-營業(yè)執(zhí)照識別API接口Python調(diào)用示例代碼說明
    發(fā)表于 01-10 11:48 ?6次下載
    <b class='flag-5'>API</b>-Shop-OCR-營業(yè)執(zhí)照識別<b class='flag-5'>API</b><b class='flag-5'>接口</b>Python調(diào)用示例代碼說明

    短信API接口的應用

    短信API接口被廣泛應用于物流行業(yè),物流行業(yè)使用短信API接口一般都是在收單短信確認、到貨短信確認以及其他新信息,以便能夠讓賣家實時了解到物品的動態(tài)情況。
    發(fā)表于 05-12 17:22 ?1435次閱讀

    中國聯(lián)通張涌:5G將為電競帶來新的表現(xiàn)形式和產(chǎn)業(yè)空間

    8月24日,中國聯(lián)通中訊郵電咨詢設計院有限公司執(zhí)行董事、總經(jīng)理張涌分享了對5G技術與電競結(jié)合的全新思考,他認為5G“大帶寬、低時延、多連接”的特點將對大眾的生活產(chǎn)生極大的影響,也將更大幅度地改變與通信技術相伴相生的電子競技產(chǎn)業(yè)。張涌相信,5G的到來將為電競帶來令人驚嘆的表現(xiàn)形式和產(chǎn)業(yè)空間。
    的頭像 發(fā)表于 08-25 10:30 ?2327次閱讀

    關于API接口相關知識 API的權限與安全問題

    API 寫出來后會被調(diào)用,但由于計算機 & 網(wǎng)絡系統(tǒng)的局限性,我們的 API 接口是不可以被無限制調(diào)用的。
    的頭像 發(fā)表于 10-06 12:56 ?1990次閱讀

    如何設計一個優(yōu)雅的API接口

    另一種是API接口提供方給出AK/SK兩個值,雙方約定用SK作為簽名中的密鑰。AK接口調(diào)用方作為header中的accessKey傳遞給API接口
    的頭像 發(fā)表于 12-20 14:23 ?1941次閱讀

    設計API接口的注意事項

    一般的API接口的邏輯都是同步處理的,請求完之后立刻返回結(jié)果。
    發(fā)表于 12-22 15:25 ?984次閱讀

    API+DevOps:華為云API Arts一體化平臺,端到端呵護您的API

    API+ | 以API-First理論為基礎,以API為核心構建數(shù)字化生態(tài) 摘要:華為云API Arts是
    的頭像 發(fā)表于 02-17 19:05 ?1345次閱讀

    api接口怎么使用

    本文就從API接口的維度,淺析API的概念以及為什么要了解它 一、API的概念 API,官方定義為應用程序編程
    的頭像 發(fā)表于 05-24 14:44 ?1727次閱讀

    api網(wǎng)關 kong 教程入門

    為什么使用API-Gateway 方便客戶端維護– 每個請求方不用管理多個api url,統(tǒng)一訪問api-gateway即可 接口重構時調(diào)用方不須了解
    的頭像 發(fā)表于 11-10 11:39 ?1169次閱讀
    <b class='flag-5'>api</b>網(wǎng)關 kong 教程入門