鍍金池/ 問答/PHP  Python/ php寫接口安全驗證的不解?

php寫接口安全驗證的不解?

在使用php寫接口的時候,要使用安全驗證,也不知道為什么最近想著想著就有點不解了
比如有個接口地址http://test.com/user/list?uid...
上面的3個參數(shù)分別是:uid(用戶id),token值,sign(這個值是根據(jù)前面2個參數(shù)在規(guī)定的算法下計算出來的)
給了服務(wù)器之后,服務(wù)器再根據(jù)同一個規(guī)則計算sign,來驗證和傳過來的sign是否一致

假如上面的url是正常的,可以拿到數(shù)據(jù),如果這個時候這個url被其他人知道了,只要在瀏覽器運行就可以看到數(shù)據(jù)了,那么請問這個時候的安全驗證有什么作用??

回答
編輯回答
雅痞
  1. 你可以把當(dāng)前時間戳也作為參數(shù)一起傳遞,接口方判斷請求有效性時額外判斷下是否超過預(yù)定時間。這樣每個接口每過一段時間生成的sign都是不同的。
  2. 還可以加上ip校驗,只有指定服務(wù)器ip發(fā)送的接口請求才進行處理。
2018年1月22日 17:59
編輯回答
薄荷綠

一般接口的安全驗證是有公鑰和私鑰的,只會傳送公鑰然后通過查找到私鑰生成token或者簽名 ,而不是像現(xiàn)在這樣所有的參數(shù)都是明面?zhèn)鬏?。而且接口驗證的是請求身份的正確與否,而不是一個正確的身份請求必須在正確的地方才能得到正確的答案

2018年3月1日 15:59
編輯回答
苦妄

不論是加密傳輸還是明文傳輸,瀏覽器解析之后都會變成明文數(shù)據(jù),這肯定是不可避免的。

要說安全驗證有什么作用,那就要解釋一下 Token 了,Token 的意思是令牌,通行證,用戶獲取了 token 之后才能進行相對應(yīng)的操作,如果沒有了 token,那豈不是可以偽造用戶請求,肆意操作?

2018年6月25日 20:12
編輯回答
陪我終

樓主提到了三個參數(shù)。
uid(用戶id) 這是普通參數(shù)
token值 這是身份驗證參數(shù) ==》 登錄使用
sign 這是請求簽名參數(shù) ==》 防篡改使用

服務(wù)端收到請求后。
首先應(yīng)該是校驗sign是否合法。不合法就認為是被篡改的請求了終止服務(wù)。
接著驗證token,獲取用戶身份信息。
最后到業(yè)務(wù)邏輯。

2017年7月9日 18:52