具體來說,現在用的是iPhone進行串連,但這不重要
我的問題是,如果不做安全相關處理的話,一些可能改變資料庫的操作可能會遭遇垃圾資料提交什麼的,畢竟要找到這些資訊只要找個http包就可以了
系統無使用者登入
新手問題(從來沒做過服務端開發),如果可以,給幾個主流方法的連結,多謝
回複內容:
具體來說,現在用的是iPhone進行串連,但這不重要
我的問題是,如果不做安全相關處理的話,一些可能改變資料庫的操作可能會遭遇垃圾資料提交什麼的,畢竟要找到這些資訊只要找個http包就可以了
系統無使用者登入
新手問題(從來沒做過服務端開發),如果可以,給幾個主流方法的連結,多謝
這個必須要做,隱藏在app裡的介面如果沒有認證,現在hack app的人這麼多,很快就會被人發現,用來直接操作資料庫。
直觀總結方法二:
1.要求標頭裡帶使用者username和password,到伺服器端做驗證,通過才繼續下邊商務邏輯。
有點:防止了伺服器端api被隨意調用。
缺點:每次都互動使用者名和密碼,互動量大,且密碼明文傳輸不安全。
2.第一次請求,要求username和password,驗證通過,種cookie到用戶端,app儲存cookie值。
每次請求帶上cookie。
點評:和pc上瀏覽器認證的原理一樣了。
以上兩點,只有註冊使用者,才能有權訪問商務邏輯,而app有大量的不需要註冊資料api
3.制定一個token建置規則,按某些伺服器端和用戶端都擁有的共同屬性產生一個隨機串,用戶端產生這個串,伺服器收到請求也校正這個串。
缺點:隨機串建置規則要保密。
比如:一個使用php架構的工程,架構每次互動都會有 module和action兩個參數做路由,這樣的話,我就可以用下邊這個規則來產生token
app要請求使用者列表,api是“index.php?module=user&action=list”
app產生token = md5sum ('user'.'2012-11-28'.'#$@%!'.list) = 880fed4ca2aabd20ae9a5dd774711de2;
實際發起請求為 “index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2”
伺服器端接到請求用同樣方法計算token,
先提這三個,都在項目中用過。
垃圾資料的提交,永遠沒法完全屏蔽。可以想辦法提高上傳垃圾資料的難度。
參照防禦CSRF攻擊的方法,在使用者提交資料前要請求一個token(比如一個隨機字串+時間戳記的md5值),然後使用者提交資料的時候要同時提交這個token,並且進行驗證,驗證成功才能寫入資料庫。