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

作者: sing10407 (阿U)   2016-01-31 21:23:45
大家好
目前我們的專案會需要提供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
作者: MIM23 (HAWK)   2016-01-31 22:33:00
Android也能實作session阿沒詢問過你們家的mobile工程師嗎...
作者: ssccg (23)   2016-02-01 01:47:00
web的session在通常就只是http cookie中存一個session id不管在哪個平台用http都可以用session啊
作者: nOhiTmE   2016-02-01 02:12:00
oauth?
作者: kewang (652公車)   2016-02-01 05:19:00
你已經說出答案了,另外注意服務變大的話可以用cache管理
作者: y3k (激流を制するは静水)   2016-02-01 09:55:00
你也可以參考Amazon的那種hash check方式雖然前陣子我被他搞過大概一天 但是不失為一種不錯的機制
作者: manaup   2016-02-01 23:28:00
通道加密 secretkey accesslimit 都要做啊只要是放在公開網路上的東西就要做保護 這不是基本的嗎
作者: riverless (請打台文 禁漢字)   2016-02-02 15:46:00
一般作法是帶token token算法只有你們知道
作者: kiwatami (悠游自在)   2016-02-02 21:51:00
至少存取頻率要限制在一定的量 例如一分鐘內同一個使用者只能要求幾次在幾秒鐘內重複要求超過次數要delay x*2的n次方毫秒不然真的會一下就爆預算
作者: iamsewei (少年阿兵)   2016-02-05 16:43:00
想問一下 所謂的session 是不是一串字串啊...
作者: kiwatami (悠游自在)   2016-02-06 10:27:00
字串應該是指session id吧 用來判斷是哪個session的要求你可以把session當成一個連線者 不論他有沒有登入server端都會建立一個對應的session存在記憶體內而登入後再存入一個標記表示已登入這時依據這個id使用者要求需要登入的連線時就不用再次登入 因為server端知道這個連線來源已登入除了登入之外還可以紀錄其他資訊

Links booklink

Contact Us: admin [ a t ] ucptt.com