2016-08-04 84 views
1

我有一个需要用户登录的网站。而且由于所有内容都无法通过https访问,因此我们决定仅将https用于登录页面。仅适用于登录页面的HTTPS - 是否推荐?

页面上提交的所有其他数据都不敏感,不需要加密。

这种方法可以危害用户的登录凭据吗?将所有其他页面放在http上 - 攻击者是否可以访问用户会话cookie中的凭据?

我可以看到许多网站采用这种方法,所以我认为这可能是安全的 - 但想了解背后的技术。

+3

“提交的页面上的所有其他数据的不敏感”说谁呢?我关心我的隐私。我也很关心能够确定我确实在我喜欢的网站上。 – PeeHaa

+0

另外,如果你使用的是非https的cookie,它会泄漏出来。 – PeeHaa

回答

4

拥有仅HTTPS在登录页上是不安全的

  • 这意味着你不使用HSTS,这是对SSLSrip唯一保护
  • 这意味着攻击者可以更换你的http页面通过别的东西链接到登录页面(比如向他的服务器提交凭据的popin)
  • 一旦用户连接,cookie 必须必须具有安全属性(它如果没有,很容易窃取cookie。见firesheep)

唯一安全的方法是使用HTTPS在您的域的所有网页,使用HSTS和重定向所有HTTP请求到https。

这种方法可以危害用户的登录凭据吗?将所有其他页面放在http上 - 攻击者是否可以访问用户会话cookie中的凭据?

攻击者可以窃取会话cookie,所以他大概可以做很多伤害(这取决于你的保安措施,更改密码,电子邮件,提取的personnal数据...),他可以模拟断线再次询问http网页上的密码。

我看到许多网站有这种做法,所以我想可能是安全

不,不是这样的。他们可能网站太大,无法在任何地方打开https,因此他们尽其所能限制了损失。 (或者它们只是懒惰的)

-1
  1. HTTPS只能为提供的登录页面实现安全标志为应用程序启用。 安全标志将防止以明文形式传输Cookie。 未能使用“安全”标记,攻击者可通过欺骗用户的浏览器向网站上的非HTTPS页面提交请求来获取会话cookie。
  2. HTTPS应该用于登录页面和所有其他认证页面。登录页面上的HTTPS以加密格式传递凭据,但所有其他授权请求以未加密格式传输意味着如果任何HTTP请求使用会话标识,会话标识将以纯文本形式传输。

最好的方法是对所有页面使用HTTPS,以确保完整的数据以加密格式传输。

编号:https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet

+0

“HTTPS只能用于提供登录页面的应用程序启用了安全标志”是错误的:如果您有安全标志(您应该!),那么需要身份验证的页面(非登录页面)必须是https或它们将不会收到身份验证Cookie。 – Tom

相关问题