我目前正在爲我的教會與一些相當敏感的數據有關係的數據庫應用..這是我的網站API的安全認證方案嗎?
的應用程序是用Ruby on Rails的,
我們也期待它有一個iPhone應用程序擴展。
目前,我試圖找到驗證iPhone應用程序的用戶提供最佳的解決方案,這裏是一個解決方案,我想出了:
iPhone應用程序發出握手請求(通過SSL),返回一個帶有2個值的JSON字符串:api_key和api_secret。
任何後續請求都附加了2個附加參數api_key和api_signature api_signature基本上是api_secret與用戶電子郵件一起散列以掩蓋祕密。
Rails應用程序通過散列在一起api_secret和用戶的電子郵件,並將其與通過簽名認證比較簽名..
的應用程序得到它的數據:-)
的api_secret無效並重新創建每2小時(所以如果黑客得到了它保持他們願意有一個有效的祕密2小時..)
聰明,因爲我認爲這是..我看到一個昭然若揭obvio我們的場景:
如果什麼黑客拿到API_KEY和反正api_signature的保持..
如果他們加上他們與那些他們在等什麼在我的所有obsfucation點PARAMS要求?
你會如何更好地執行此操作?
非常感謝!
這個「握手請求」涉及什麼?用戶最初是如何驗證的? –
哪一端發送* api_key *和* api_secret *?只有每個用戶數據的電子郵件地址? – jkj
基本上只是一個標準的POST請求到我的會話控制器上的登錄操作...然後生成這兩個值(api_key和api_secret)..不完全如何,可能會生成一個隨機數並使用MD5 –