Api令牌身份验证-通过参数还是标头?

时间:2019-01-29 11:16:20

标签: api http authentication

我写了一些API。它需要一个API令牌。 我只能通过后端访问此API。 我应该仅通过标头接收API令牌,还是可以从查询字符串参数接收API令牌? 在安全方面有区别吗?

编辑:忘了提及,我当然使用SSL

2 个答案:

答案 0 :(得分:0)

所有授权都在标头中,只有标头更安全 在查询参数中,这些是公开的

例如如果您发送“赞”查询,它将对所有人公开

永远不要这样做

curl -X GET http://localhost:5051/v1/user/verifytoken?token=bearer-xdrRxfdfdfdf

答案 1 :(得分:0)

您可能需要复习cookie和令牌之间的区别,以帮助您找到答案。

Cookie的目的是将状态带入本质上是无状态协议的http,http协议没有状态的概念,只有通过将这些cookie或用于识别我们服务器的请求中的少量数据引入状态

默认情况下,所有http请求中都包含Cookie,它们在任何请求的标头上均以属性的形式显示。服务器可以选择将信息放置在用户cookie上,以对该用户唯一标识特定服务器。

因此,如果他们登录的是我正在制作的网站,则可以将一些信息粘贴到该cookie中,说这是user13794,并且在任何后续请求中,他们将使用cookie 13794,该用户说这是同一位用户回来,同一个人的另一个请求。

Cookie会自动包含在所有请求中,而且非常重要的是,每个域都是唯一的,例如Google.com和eBay.com。您拥有的与google.com绑定的cookie不会,并且默认情况下无法与ebay.com共享,这就是我们如何对所有请求进行某种程度的安全保护。因此,如果我登录google.com然后访问hacker.com,则hacker.com网站将无法从Google提取Cookie并劫持我的会话。

SO cookie不能发送到不同的域,这是出于安全目的而存在的,因此您不能轻易地劫持人们的会话。

与cookie相对的是令牌的概念,它是作为一种约定引入的,用于在令牌不再有用的情况下使用令牌代替cookie。

使用令牌没有自动完成,我们必须在令牌中手动添加标头,该标头可能是一串字母和数字,并且可能将其包含在特定标头中,因此我们必须手动接线随时更新我们的令牌。

令牌的好处是我们可以将其发送到希望的任何域,因此,如果我在google.com上并且想要向完全不同的域发出经过身份验证的请求,则可以使用令牌来实现

我会向其他域提出请求,包括我的特定令牌和繁荣!我在其他域上通过了身份验证。

这就是我my绕的说法,就像使用cookie一样,令牌仅通过标头(而不是查询参数)手动连接。

相关问题