3 回答

TA貢獻1834條經(jīng)驗 獲得超8個贊
需要登錄的,驗證登錄信息。
不需要登錄的,沒法驗證。
人家能訪問你的頁面,而你的頁面又訪問了你的接口,
和
人家直接訪問你的接口
有什么區(qū)別?
如果不想接口被直接訪問,你可以考慮判斷一下訪問來源,來自哪個域名;或者打開頁面的時候生成一個token,訪問接口的時候驗證這個token.
但這些都不能從根本上解決問題。
從根本上說就是你頁面能用的接口,別人也是可以訪問到的,所以,頁面中不需要使用的數(shù)據(jù),你就盡量不要給了。

TA貢獻1946條經(jīng)驗 獲得超3個贊
先說句題外話。
接口不可能隱藏起來不被別人調(diào)用,要做的就是做好用戶權(quán)限控制,即使這樣,只要前端提交數(shù)據(jù)帶上了憑證(cookie,token)以及做檢測的字段
,后端是發(fā)現(xiàn)不了是不是非法調(diào)用的。就像百度貼吧防止灌水一樣,只有將幾個跟登錄有關(guān)參數(shù)提交給后臺,還是可以直接使用API發(fā)帖子
根據(jù)你的情況,前后端分離,個人不建議使用cookie,session做控制,使用token好一點:
前端使用賬號密碼登錄,登錄成功,后端生成token,寫入數(shù)據(jù)庫,有效期暫定兩小時吧,返回給前端
前端在
http headers
中添加Authorization: [Token]
訪問接口后端拿出token跟數(shù)據(jù)庫比對,取出用戶信息,如果驗證不通過,返回403
添加回答
舉報