[問題] 給Mobile開發者用的 api 設計?

看板AndroidDev作者 (阿U)時間10年前 (2016/01/31 21:23), 10年前編輯推噓5(5019)
留言24則, 9人參與, 最新討論串1/1
大家好 目前我們的專案會需要提供api給android開發者,想問一下一些安全的設計: 目前專案會提供 JSON 或 XML 格式給開發者, 但我一直有一個想不通的問題, 就是這樣 Hacker 如果知道這個api用法,那不就能無限次的try嗎? 簡單說,在web開發時,在進去一些頁面時,可以使用session來避免掉無權限登入的問題 但在android call web api的設計下,大家是如何做安全性設計的呢? 目前想到的是: user登入後,由server給一組token, 每次存取某權限才能存取的api時,都要先確認token正確性 但是想到還要管理token,就越想越複雜 不知道大家是怎麼實做的呢? PS. 後端開發是使用 ASP.NET MVC, SERVER是使用Azure -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.201.250 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1454246629.A.164.html ※ 編輯: sing10407 (61.231.201.250), 01/31/2016 21:24:51

01/31 22:33, , 1F
Android也能實作session阿
01/31 22:33, 1F

01/31 22:35, , 2F
沒詢問過你們家的mobile工程師嗎...
01/31 22:35, 2F
原來如此,那我再看一下 感謝 ※ 編輯: sing10407 (61.231.201.250), 01/31/2016 22:38:36

02/01 01:47, , 3F
web的session在通常就只是http cookie中存一個session id
02/01 01:47, 3F

02/01 01:48, , 4F
不管在哪個平台用http都可以用session啊
02/01 01:48, 4F

02/01 02:12, , 5F
oauth?
02/01 02:12, 5F

02/01 05:19, , 6F
你已經說出答案了,另外注意服務變大的話可以用cache管理
02/01 05:19, 6F

02/01 09:55, , 7F
你也可以參考Amazon的那種hash check方式
02/01 09:55, 7F

02/01 09:56, , 8F
雖然前陣子我被他搞過大概一天 但是不失為一種不錯的機制
02/01 09:56, 8F

02/01 23:28, , 9F
通道加密 secretkey accesslimit 都要做啊
02/01 23:28, 9F

02/01 23:29, , 10F
只要是放在公開網路上的東西就要做保護 這不是基本的嗎
02/01 23:29, 10F

02/02 15:46, , 11F
一般作法是帶token token算法只有你們知道
02/02 15:46, 11F

02/02 21:51, , 12F
至少存取頻率要限制在一定的量 例如一分鐘內
02/02 21:51, 12F

02/02 21:51, , 13F
同一個使用者只能要求幾次
02/02 21:51, 13F

02/02 21:51, , 14F
在幾秒鐘內重複要求超過次數要delay x*2的n次方毫秒
02/02 21:51, 14F

02/02 21:51, , 15F
不然真的會一下就爆預算
02/02 21:51, 15F

02/05 16:43, , 16F
想問一下 所謂的session 是不是一串字串啊...
02/05 16:43, 16F

02/06 10:27, , 17F
字串應該是指session id吧 用來判斷是哪個session的
02/06 10:27, 17F

02/06 10:27, , 18F
要求
02/06 10:27, 18F

02/06 10:27, , 19F
你可以把session當成一個連線者 不論他有沒有登入
02/06 10:27, 19F

02/06 10:27, , 20F
server端都會建立一個對應的session存在記憶體內
02/06 10:27, 20F

02/06 10:27, , 21F
而登入後再存入一個標記表示已登入
02/06 10:27, 21F

02/06 10:27, , 22F
這時依據這個id使用者要求需要登入的連線時
02/06 10:27, 22F

02/06 10:27, , 23F
就不用再次登入 因為server端知道這個連線來源已登入
02/06 10:27, 23F

02/06 10:27, , 24F
除了登入之外還可以紀錄其他資訊
02/06 10:27, 24F
文章代碼(AID): #1MhWhb5a (AndroidDev)