2015-06-05 310 views
1

我在HTTP Body中发送用户名和密码,用于验证controller action中的Web API。我使用用户名/密码在每个控制器中进行身份验证。它使用SSLWeb API - HTTP标头中的身份验证凭证与SSL身份验证?

是否有任何安全原因,为什么在HTTP Header中发送authentication credentials比在HTTP body中更好?

如果我正在使用Basic Authentication我可以看到如何在this question需要在头中的凭据,但我不是这样,我没有看到目的。只要它使用SSL就好像安全一样。

回答

2

从SSL的角度来看,HTTP请求的标头(HTTP基本身份验证)或正文(例如基于表单的登录)中的凭证的安全性是相同的。

但是,如果客户是你应该考虑以下常规网络浏览器:

浏览器缓存,HTTP基本身份验证使用的凭据的用户通常遇到的执行了注销,他们将不得不关闭问题他们的浏览器

另一方面,基于表单的登录通常会创建一个时间受限的会话cookie,并且可以随时删除。

+0

原生移动应用程序将使用Web API。 – Heinrich

+0

好的,在这种情况下,它不会产生任何影响,因为您完全控制了凭据的发送。 – Robert

+2

使用REST API时,在头中发送凭证不是更好,因为服务器能够在处理正文之前验证请求。否则,服务器将首先处理整个身体,然后对用户进行身份验证。因此,攻击者可能会发送非常大的请求而未经过身份验证。你怎么看? – Theo