在 Web 應(yīng)用開發(fā)中,API 是應(yīng)用程序和其他系統(tǒng)之間進行數(shù)據(jù)交互的主要方式。 跨域資源共享(CORS)是一種常見的處理跨域請求的技術(shù),但同時也帶來了一些安全性問題。我將分享 CORS 技術(shù)及其安全性問題。
跨域資源共享(CORS)
CORS 是指在瀏覽器端實現(xiàn)的機制,允許 Web 應(yīng)用程序或 API 向不同的域名提供服務(wù)。當(dāng)瀏覽器發(fā)起跨域請求時,服務(wù)器可以在響應(yīng)中添加特定的頭信息,告知瀏覽器該請求是否被允許。下面是一個簡單的 CORS 響應(yīng)頭:
Access-Control-Allow-Origin: https://example.com
這條響應(yīng)頭中的 https://example.com
表示只允許來自 https://example.com
的請求訪問當(dāng)前 API。如果沒有配置這個頭信息,瀏覽器會阻止跨域請求,且無法獲取 API 的返回結(jié)果。
雖然 CORS 技術(shù)方便了 API 的跨域訪問,但同時也帶來了一些潛在的網(wǎng)絡(luò)安全風(fēng)險。
CORS 安全性問題
-
CSRF 攻擊(跨站請求偽造)
CSRF 攻擊通常是針對需要登錄態(tài)的應(yīng)用場景。攻擊者構(gòu)造一個網(wǎng)頁,通過重定向或者其他方式將其發(fā)送給用戶瀏覽器,當(dāng)用戶登錄了受害網(wǎng)站后,攻擊者的想法就得以實現(xiàn)。CORS 正是這種情況的幫兇,因為 CORS 服務(wù)默認不校驗請求來源,導(dǎo)致攻擊者可以輕易構(gòu)造請求并攜帶合法的 session id 等信息。
對于 CSRF 攻擊問題,一些贏在了防范措施,例如增加 token 認證等。正確使用 token 認證,在站內(nèi)邏輯認證的過程中,即使攜帶 sessionid 等敏感信息,攻擊者仍不可能準(zhǔn)確模擬一條合法的請求。
-
權(quán)限提升
如果 API 沒有正確地驗證跨域請求,攻擊者有可能通過 AJAX 請求修改某些內(nèi)容或數(shù)據(jù)偷取敏感信息。例如,一個具有某項管理權(quán)限的 Web 頁面被注入了惡意 JavaScript 代碼,并發(fā)送了跨域攻擊請求,則攻擊者可能訪問到其他模塊中保密內(nèi)容,并進行操作。
防范 CORS 安全性問題
-
端口綁定同源策略:配置 Web 應(yīng)用程序或 Web 服務(wù)器只監(jiān)聽本地端口、本地 IP 地址或特定域名,從而確保網(wǎng)絡(luò)請求只會來自受信任的瀏覽器或應(yīng)用程序。
-
增加 CORS 攻擊屏蔽策略:增加 referer 校驗、檢查 HTTP 頭信息中的申請者和請求域名是否一致等。
-
使用 token 認證:正確使用 token 認證,系統(tǒng)可以在站內(nèi)邏輯認證的過程中進行校驗,針對外部攻擊請求時,token 就會無效。
CORS 技術(shù)雖然便利了 API 的跨域訪問,但是也帶來了一些安全性問題。為了避免潛在的網(wǎng)絡(luò)安全問題,開發(fā)者需要認真審視當(dāng)前 Web 應(yīng)用程序的安全性,并且采取有效的安全防范措施。
如果你日常會用到 api 管理工具的話,不妨看看我目前參與的這個開源項目,Postcat 開源的 API 管理工具,純國產(chǎn),免費的,主打插件生態(tài),適合中小團隊以及個人開發(fā)者使用,有 API 相關(guān)的核心功能。
?
目前在 Github 上 3.5 k star,如果你覺得這個項目還不錯的話,不妨點個 star 支持一下~
Github:
https://github.com/Postcatlab/postcat
Postcat 核心功能:
-
API 文檔管理:可視化 API 設(shè)計,生成 API 文檔
-
API 測試:自動生成測試參數(shù),自動生成測試用例,可視化數(shù)據(jù)編輯
-
插件拓展:眾多插件擴展產(chǎn)品功能,打造屬于你和團隊的 API 開發(fā)平臺
-
Mock:根據(jù)文檔自動生成 Mock,或創(chuàng)建自定義 Mock 滿足復(fù)雜場景
-
團隊協(xié)作:既能實現(xiàn) API 分享也能可以創(chuàng)建云空間共同協(xié)作
Postcat 優(yōu)勢:
-
免登錄即可測試:省去繁瑣的驗證登錄的操作
-
界面簡潔:沒有冗余的功能與復(fù)雜選項
-
免費:中小團隊以及個人使用
-
豐富的插件:支持數(shù)據(jù)遷移、主題、API 安全等高達 30 款插件
-
國產(chǎn):能更好的理解國內(nèi)用戶的需求,與開發(fā)團隊溝通無障礙
-
完善的用戶文檔:跟著操作就能快速上手
多提 Issue !多反饋!
在使用過程中有任何疑問,可以進群交流,文章來源:http://www.zghlxwxcb.cn/news/detail-436618.html
也可以在線提 Issue(強烈推薦這種開源的方式),提問題本身就已經(jīng)在貢獻社區(qū)了: https://github.com/Postcatlab/postcat/issues文章來源地址http://www.zghlxwxcb.cn/news/detail-436618.html
到了這里,關(guān)于搞懂 API,跨域資源貢獻 (CORS )和安全性問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!