我們正在實施一項新的網絡服務。 Web服務將成爲敏感數據的存儲區,並且有多個具有不同權限的用戶類型。因此,某些用戶類型無法訪問某些類型的數據(有些用戶類型無法更改等等)。這在REST中如何工作?我對REST很新,很抱歉,如果這聽起來不太好。如何安全地使用敏感數據來實現REST?
3
A
回答
5
您的第一步是提供一些SSL形式的傳輸加密。這應該注意確保在中間攻擊中沒有人,並且沒有人在監聽數據。其次,你需要弄清楚某種認證方法。一種流行的方法是創建一個登錄服務,並向其發送用戶名和密碼,並返回某種有限生命密鑰。然後您發送此密鑰以及所有子請求,服務器在返回任何數據之前驗證它。如果你有不同的用戶級別,那麼以及檢查密鑰也檢查給定的用戶是否應該能夠訪問該信息。
1
1
作爲第一個海報國家,它是一種流行的模式,爲客戶提供一種手段來首先對您的系統進行身份驗證(谷歌爲他們的一些apis執行此操作)。其中的答覆包括一個令牌,以便客戶端將其作爲參數包含在後續請求中。
例如HTTP POST(通過SSL)到http://you/auth使用用戶名和(密碼的MD5哈希) - 比較這與你爲他們存儲的密碼的MD5。
用HTTP 200 OK和帶有您的身份驗證令牌的消息正文或標頭進行響應。
這對重新提交每個請求的auth憑證具有雙重好處。對於令牌(現在只是一個有效性檢查 - 可能針對有效令牌的內存存儲)而不是用戶和密碼的數據庫查找,可以減少令牌的處理開銷。您還可以減少通過線路發送憑證的次數(儘管SSL加密)。
在您的資源端點上實施訪問控制需要多一點工作,但基本上只是指定哪些令牌可用於針對哪些資源。這將根據您的情況而有所不同。
希望這是有道理的,祝你好運。
相關問題
- 1. Silverlight安全 - 敏感數據
- 2. 在Ember.JS中,如何安全地加載敏感環境數據?
- 3. REST API GET敏感數據
- 4. 如何將敏感數據安全地存儲在MySQL數據庫中?
- 5. 安全地將敏感數據推送到Amazon SQS?
- 6. 如何在PHP中安全地存儲包含敏感數據的cookie?
- 7. 如何安全地將敏感數據從瀏覽器發送到服務器?
- 8. 安全存儲敏感配置數據,如連接字符串
- 9. 如何使用Spring Data Rest對數據進行大小寫不敏感?
- 10. 可安全地對Android中的敏感數據進行硬編碼?
- 11. 保護敏感實體數據
- 12. 將敏感數據存儲在本地Stoarge或會話存儲中是否安全?本地存儲允許對敏感數據進行任何攻擊
- 13. 使用mcrypt加密敏感數據
- 14. 使用VCR過濾敏感數據
- 15. 如何在本地存儲(或其他數據庫)上安全地保存敏感訪問代碼?
- 16. 使用來自其他應用程序的敏感數據
- 17. 如何安全地實現Java插件安全性?
- 18. NServicebus時間敏感的拍賣實現
- 19. 局部敏感哈希實現?
- 20. 在數據庫中保存敏感數據 - 安全服務器通信
- 21. 在REST中實現安全性?
- 22. HTTPS發送敏感數據
- 23. Mule記錄敏感數據
- 24. EF4中的敏感數據
- 25. .NET MVC +敏感數據
- 26. CodeIgniter中的敏感數據
- 27. ASP .NET MVC敏感數據
- 28. 敏感數據轉儲
- 29. 在文字區域使用用戶敏感數據,並將它們傳遞給JavaScript/AJAX時,如何將安全
- 30. 如何使用敏感數據運行cron作業?