不安全的直接對象引用(IDOR)

當應用程序允許用戶使用對象的直接標識符作為輸入來訪問對象時,就會發生此類漏洞。這允許攻擊者跳過授權。 

例如,假設用戶可以通過“https://ourpatients.com/userID=1234”路徑訪問自己的醫療記錄。如果他們可以通過修改用戶 ID 來訪問其他患者的記錄,那么就存在漏洞。 

損壞的對象級授權 (BOLA)

就像不安全的 IDOR 一樣,損壞的對象級授權是一種漏洞,當 API 暴露帶有對象標識符的端點時就會發生。例如,當使用 Gorilla Mux 時,你會得到如下結果: 

func main() {

// Init the mux router
router: = mux.NewRouter()

// Route handles & endpoints
// Get all books
router.HandleFunc("/books/", GetBooks).Methods("GET")

// Create a book
router.HandleFunc("/books/", CreateBook).Methods("POST")

// Delete a specific book by the bookID
router.HandleFunc("/books/{bookid}", DeleteBook).Methods("DELETE")

// Delete all books
router.HandleFunc("/books/", DeleteBooks).Methods("DELETE")

// serve the app
fmt.Println("Server at 8080")
log.Fatal(http.ListenAndServe(":8000", router))
}

注意用戶如何根據自己的 ID 刪除書籍。如果此 ID 被暴露,并且用戶可以通過調整 URL 中的 ID 來刪除書籍,那么就存在漏洞。 

CORS 配置錯誤

跨域資源共享 (CORS)允許外部域訪問受限數據。跨域資源共享有時是必不可少的。例如,托管在另一個域中的前端應用程序可以訪問另一個域中的后端應用程序。 

然而,CORS 通信錯誤可能會導致授權失敗。例如,如果開發人員運行以下代碼,他們將接受來自所有外部域的請求。

func enableCors(w * http.ResponseWriter) {
( * w).Header().Set("Access-Control-Allow-Origin", "*")
}

這可能構成威脅,尤其是當攻擊者向應用程序發送惡意請求時。

預防 Golang 中的訪問控制中斷

在上一節中,我們探討了 Golang 中訪問控制失效的不同示例。在本節中,我們將討論如何防止此類情況發生。 

CORS 配置

為了防止惡意攻擊者因 CORS 配置錯誤而訪問您的應用程序,開發人員需要在配置 CORS 時考慮安全性。例如,開發人員可以單獨授予其應用程序訪問權限,而不是授予每個外部域訪問權限。 

例如,如果應用程序的前端域是“https://myfrontend.com”,則只應授予此域訪問權限。為此,我們將“*”替換為“https://myfrontend.com”。

func enableCors(w * http.ResponseWriter) {
( * w).Header().Set("Access-Control-Allow-Origin", "https://my frontend.com")
}

緩存控制

雖然緩存非常有用,但開發人員可以將max-agemust-revalidate作為緩存控制的一部分來實現,以防止出現漏洞。這樣,攻擊者就無法使用他們的計算機訪問用戶的信息。開發人員可以通過將其包含在請求的標頭中來做到這一點。 

Cache-Control "max-age=3600, must-revalidate"

防止破壞對象級授權和不安全的直接對象引用

許多公司的應用程序存在 BOLA 漏洞。為了防止這些漏洞,請采取以下步驟: 

結論

授權失效是一種安全漏洞。這是因為它使用戶的個人數據容易受到惡意行為者的攻擊。雖然保護用戶數據似乎需要做很多工作,但有些應用程序可以幫助管理和監控產品的安全性。

文章來源:Golang Broken Access Control Guide: Examples and Prevention

上一篇:

Angular XML 外部 實體(XXE)指南: 示例和預防

下一篇:

動態應用程序安全 測試(DAST)工具 概述和指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費