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

php寫接口安全驗(yàn)證的不解?

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

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

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

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

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

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

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

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

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

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

2017年7月9日 18:52