[問題] API安全性
各位先進好,
小弟有個問題想請教一下
目前正在製作一個API,該API是用PHP所撰寫的
使用者可以透過該API去撈取資料
但現在問題了,由於我是使用ajax 搭配jsonp格式來跨域傳遞
我擔心是用GET方式傳送
GET方式傳送使用者只要檢視原始碼
就可以知道我塞的參數是甚麼,傳送的資料是甚麼
會不會直接在API的網址列後面更改個參數就可以查到要查的資料?
因此想詢問有沒有甚麼做法是安全的
至少不要讓使用者改個使用者ID就可以撈出其他人資料
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.94.27
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1431673010.A.630.html
→
05/15 16:04, , 1F
05/15 16:04, 1F
→
05/15 16:05, , 2F
05/15 16:05, 2F
→
05/15 16:05, , 3F
05/15 16:05, 3F
推
05/15 16:34, , 4F
05/15 16:34, 4F
→
05/15 16:39, , 5F
05/15 16:39, 5F
→
05/15 16:39, , 6F
05/15 16:39, 6F
→
05/15 16:40, , 7F
05/15 16:40, 7F
就在我po完文章之後, 想到了與一樓大大一樣的辦法
就是我再做一個產生token的api(稱為a), 是透過md5去產生
主要是要使用不可逆的加密函數, 雖然md5據說已經可逆了
但我的查詢資料並不是那麼有價值去破解, 只是不想讓使用者輕易地取得他人資料
接著在我真正要呼叫的api(稱為b)裡面一樣去產生一個md5
b api產生md5規則與產生a api內容一樣
產生的規則主要是用時間, 到秒為單位, 另外再隨意加上一些字串搭配
如此一來就可以比對是否是在當下同時去得到相同的密碼
假如相同, 表示使用者是透過網站程式碼傳遞
假使不同, 表示使用者拿過期的密碼來傳遞資料, 因此撈不出任何東西
以上做法應該是正確的, 在此也提供給大一個參考的做法
※ 編輯: ChenCH1986 (42.76.94.27), 05/15/2015 16:48:59
→
05/15 20:54, , 8F
05/15 20:54, 8F
→
05/16 09:53, , 9F
05/16 09:53, 9F