翻過(guò)高山走不出你
2023-07-26 20:03:16
我正在構(gòu)建一個(gè) React.js 應(yīng)用程序,它將與 Go 中內(nèi)置的 REST API 進(jìn)行交互。React 將使用 Javascript Fetch API 向我的 API 發(fā)送請(qǐng)求。問(wèn)題是我想保護(hù)我的 API 不被其他地方請(qǐng)求。任何人都不應(yīng)該能夠通過(guò) URL 或通過(guò) Postman 等任何其他客戶端直接訪問(wèn)我的 API。我知道 JWT 是什么,但這并不能解決我的問(wèn)題,因?yàn)槿魏稳硕伎梢酝ㄟ^(guò)瀏覽器訪問(wèn)令牌,然后繼續(xù)使用令牌在 React 客戶端之外請(qǐng)求 API。我進(jìn)行了廣泛的研究,但沒(méi)有什么真正符合我的描述。非常感謝您的幫助,提前。
1 回答
浮云間
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是一個(gè)本質(zhì)上無(wú)法解決的問(wèn)題。React 在客戶端上運(yùn)行??蛻舳丝刂扑鼒?zhí)行的代碼。因此,您用來(lái)將 API 使用限制為僅適用于 React 客戶端的任何機(jī)制都可以在其他客戶端上下文中發(fā)現(xiàn)和重用。你無(wú)法控制客戶,如果回報(bào)足夠有價(jià)值,那么這樣做的嘗試就會(huì)失敗。
您可以嘗試通過(guò)使用短期授權(quán)令牌來(lái)稍微強(qiáng)化它,但是沒(méi)有什么可以阻止該令牌在其他上下文中被獲取和重用。
如果您必須限制對(duì) API 的訪問(wèn),您應(yīng)該擁有一個(gè)危險(xiǎn)性或特權(quán)較小的公共 API,并且公共 API 應(yīng)該利用您的私有 API,有效代理調(diào)用以隱藏私有 API,并確保僅針對(duì)特權(quán)更高的 API 執(zhí)行經(jīng)過(guò)驗(yàn)證的查詢。
不過(guò),如果您可以描述您正在嘗試緩解的問(wèn)題,則可能還有其他可用的解決方案。
- 1 回答
- 0 關(guān)注
- 164 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
