Rest queryString中的身份验证令牌

Rest queryString中的身份验证令牌,rest,security,restful-authentication,rest-security,Rest,Security,Restful Authentication,Rest Security,我们当前的RESTAPI实现使用queryString中的apiKey来处理所有类型的请求(PUT、POST、GET)。我觉得这是错误的,但无法解释原因(也许apiKey可以在服务器和客户端之间的某个地方兑现)。比如: POST/objects?apiKey=supersecret{name:'some'} 那么,这是一个安全问题吗?请描述HTTP和HTTPS连接情况 无论您是否使用PUT、POST等,只要您将超级机密值从客户端发送到服务器,第三方都可以看到并截获您的超级机密值,反之亦然。当您使

我们当前的RESTAPI实现使用queryString中的apiKey来处理所有类型的请求(PUT、POST、GET)。我觉得这是错误的,但无法解释原因(也许apiKey可以在服务器和客户端之间的某个地方兑现)。比如:

POST/objects?apiKey=supersecret{name:'some'}

那么,这是一个安全问题吗?请描述HTTP和HTTPS连接情况

无论您是否使用PUT、POST等,只要您将超级机密值从客户端发送到服务器,第三方都可以看到并截获您的超级机密值,反之亦然。当您使用cookie存储这些值而不是查询字符串时,这一点甚至是正确的

HTTPS:

当数据在客户端和服务器之间传输时,无法截获数据,因为它受https保护,即使它是查询字符串。但是大多数人认为在查询字符串中发送数据是不好的,因为许多系统记录查询字符串。例如,大多数服务器配置为打印带有路径和查询参数的访问日志。如果它来自浏览器,也可以存储在浏览器历史记录中。

HTTP

无论您是否使用PUT、POST等,只要您将超级机密值从客户端发送到服务器,第三方都可以看到并截获您的超级机密值,反之亦然。当您使用cookie存储这些值而不是查询字符串时,这一点甚至是正确的

HTTPS:

当数据在客户端和服务器之间传输时,无法截获数据,因为它受https保护,即使它是查询字符串。但是大多数人认为在查询字符串中发送数据是不好的,因为许多系统记录查询字符串。例如,大多数服务器配置为打印带有路径和查询参数的访问日志。如果它来自浏览器,也可以存储在浏览器历史记录中