公開和私人混合的API有什麼簡單有效驗證使用者方法?

來源:互聯網
上載者:User
現有一個resetful api,是給手機APP使用的,APP大多數內容是不需要登入即可瀏覽,但是也有一部分是註冊使用者登入後才能使用的,有什麼辦法能驗證這個登入後的使用者真實性,想過返回一個access_token(自訂的,非oauth方法),但還是感覺會有冒用的風險。請教有什麼辦法驗證這個使用者的真實性而不是盜用access_token冒充的?

回複內容:

現有一個resetful api,是給手機APP使用的,APP大多數內容是不需要登入即可瀏覽,但是也有一部分是註冊使用者登入後才能使用的,有什麼辦法能驗證這個登入後的使用者真實性,想過返回一個access_token(自訂的,非oauth方法),但還是感覺會有冒用的風險。請教有什麼辦法驗證這個使用者的真實性而不是盜用access_token冒充的?

這是一個典型的如何證明我是我的問題,沒有絕對安全的方法,只能通過增加難度來提高安全性。方法有很多,你所說的令牌是其中一種常用方法,除此之外最簡單最有效就是使用https加密傳輸。其他的還有,比如重要操作每次都要求輸入密碼、以及動態密碼等等。

上面是技術性的做法,還有一種安全手段是非技術性的,更多的屬於社會學範疇(當然最終肯定都是要通過技術手段來實現的)。比如特徵庫。每個使用者都有一組特徵來標識,隨著使用次數的增加,這種特徵的收集會越來越詳細,然後系統就可以用這些特徵來驗證使用者是否是本人。例如使用者的常用登入地、手機裝置特徵、輸入習慣、使用習慣、興趣愛好等等。這些就像是一個人的指紋一樣,很難偽造。不過這個東西實現起來並不是那麼容易就是了。

安全性就是這樣,矛和盾的關係,沒有無堅不摧的矛,更沒有絕對防禦的盾。一切都要折衷,只要破解的成本大於破解後得到的利益,就可以認為系統是安全的。

resetful 無狀態,就肯定有會有被冒用的可能性。

使用和用戶端同一套加密方式產生token。
token不合法,直接拒絕。
驗證通過,根據裡面的資訊,比如有個使用者id=1,伺服器解密後判斷id=1使用者是否登入即可。
如果用戶端被反編譯,演算法被知道,使用者還是要登入才行,因為登入資訊在伺服器。
理論上說,如果每次token都不一樣,是不存在被抓包的可能性的,那樣沒意義。

私人API可以使用token來驗證使用者身份,再控制好使用者的請求頻度,避免API濫用。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.