2016-09-19 89 views
2

我設計與方法的API,它應該是一個冪等,不應該修改服務器上的任何數據。它應該是處理請求並返回給定參數的響應的方法。REST API GET敏感數據

其中一個參數是敏感數據。這不是使用額外加密的選項。數據已經被加密,但安全要求非常苛刻,即使是加密數據也應該小心處理。

根據REST規範,冪等查詢方法應該實現爲GET HTTP方法。這種情況下的問題是敏感數據不應該作爲URL中的GET參數傳遞。 HTTP標準中的唯一選項是在HTTP請求的正文部分中傳遞敏感數據。

我的問題是什麼更好?打破休息api設計,併發送查詢請求作爲POST,或通過URL中的加密數據?也許有更好的解決方案,我沒有看到?

+0

有谷歌搜索的時候'REST API敏感data' GET是很多在那裏 - 我檢查了第一位。見例如http://security.stackexchange.com/questions/29598/should-sensitive-data-ever-be-passed-in-the-query-string反對把它在查詢字符串參數 - 一個大的在於URL和查詢字符串通常記錄在Web服務器上 –

回答

3

根據REST規範,冪等查詢方法應該作爲GET HTTP方法實現 。

據我可以告訴我有限的英語應該!=必須。在這種情況下,您不會通過發送POST來破壞REST API設計。如果可能的話,您可以將您的敏感數據發送到HTTP標頭中。而且。如果要將敏感數據發送到任何地方,則應該使用HTTPS。