我已經使用 expressJs 開發了簡單的 REST API。我使用 React 作為我的客戶端應用程式。所以問題是任何人都可以看到我的 API 端點,因為 React 應用程式在客戶端。因此,他們還可以從我的 REST API 發出請求和獲取資料。(可能他們會使用我的 API 構建自己的客戶端應用程式。)我看到了一些關于此的問題,但找不到任何全面的答案。這種安全問題應該如何處理?是否可以僅將 API 訪問權限授予我的客戶端應用程式?如果不是,使用 REST API 的大品牌有多大防止這種情況?(此外,我的產品中也沒有用戶身份驗證方案。人們只需訪問和使用該網站即可。他們不需要注冊)。
uj5u.com熱心網友回復:
身份驗證是一種方法,但可以繞過。另一種方法是您可以創建一個嚴格阻止跨源請求的代理服務器,因此它會阻止來自其他域的請求向您的 API 發出請求,并且您可以從該代理服務器進行 API 呼叫。通過這種方式,您的 API 服務器端點也不會受到損害。
uj5u.com熱心網友回復:
如果,正如您在評論中所述,這是關于您自己網站上的用戶被允許使用您網站的 API,同時禁止非現場使用(例如其他網站、wget/curl等),那么您需要確保設定正確CORS 規則(禁止跨域使用您的 API)以及 CSP 規則(防止用戶注入的腳本代理您的 API),并且您還確保只允許來自具有活動會話的連接的 API 呼叫(因此即使您不想要用戶身份驗證:使用會話管理器,這樣您就可以判斷是否有人登陸您的網站并在他們開始呼叫 API 端點之前設定了會話 cookie)。
會話管理和 CORS 自帶 express(參見https://expressjs.com/en/resources/middleware/session.html和https://expressjs.com/en/resources/middleware/cors.html),對于 CSP,以及許多其他安全層,如 HSTS、XSS 過濾等,您通常使用頭盔。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/371265.html
