3 回答

TA貢獻1982條經驗 獲得超2個贊
CORS
我用 Flask 在 python 中構建了一個 get REST API。我從我自己的網站調用這個 API,我想避免其他網站使用它。
Robert Putt 建議使用 Flask CORS 包是解決這個問題的正確方法,但他自己指出這不會阻止您的 API 被其他人使用,這將導致我們到您的下一個問題,我將嘗試在更多詳情。
API 濫用
這足以避免其他人使用我的 api 嗎?
簡短的回答是否定的,因為您的 API 可以通過許多其他方式使用,例如使用 Postman、自動化腳本或被機器人廢棄,僅舉幾例。
保護 API 的通常步驟是使用令牌形式的秘密,例如用于識別執行請求的內容的 API 密鑰,也就是 Web 應用程序或移動應用程序,以及用于識別執行請求的用戶的用戶身份驗證令牌,但兩者都注定容易從其原始使用范圍中提取出來,并被攻擊者在自動化腳本中或在 Postman 等工具中手動使用。這在攻擊者控制的設備中很容易完成,但也可以通過在攻擊者的筆記本電腦中運行的免費 wifi 強制門戶來完成。當攻擊者在機場、火車站/公交車站和其他公共場所使用免費 wifi 強制門戶技術時,他們會誘騙用戶安裝自定義證書,這將允許他們解密所有 https 連接,從而獲得他們的令牌,
因此,任何在客戶端運行并需要一些秘密來訪問 API 的東西都注定會以多種方式被濫用,您可以在有關移動 API 安全技術的本系列文章中了解更多信息。本文將教您如何使用 API 密鑰、用戶訪問令牌、HMAC、TLS Pinning 來保護 API 以及如何繞過它們。這些文章更多地是在移動應用程序的 API 上下文中,但它們很好地說明了為什么不能在 Web 應用程序上下文中有效地保護您的 API,你只能讓它變得更加困難。
最后,我建議您的 Web 應用程序也使用CSP 標頭,這將允許您設置內容安全策略并實時報告違規情況。
添加回答
舉報