2016-09-19 107 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。