避免使用SSL“您将被重定向到不安全的连接。”信息

时间:2009-07-26 23:09:24

标签: ssl

我有一个登录屏幕,我正在通过SSL服务。用户填写他们的登录名/密码,这将被POST到服务器。此时我想跳出SSL,所以我将它们重定向回没有SSL的同一页面。

这会导致浏览器显示警告对话框“您将被重定向到不安全的连接”。我怎么能避免这个?我有很多网站,比如yahoo mail和gmail,它们为你提供了一个登录的SSL页面,然后在此之后将你发送到一个非SSL页面。

次要问题:此对话框的目的是什么?它试图警告我一些邪恶的目的 - 但将某人重定向到非SSL页面有什么不好?当我在SSL页面上并单击非SSL链接时,我不会收到警告。重定向某人有什么不同?

我在ASP.NET 2.0中这样做 - 但我认为这是一个通用的web-dev问题。

更新摘要:似乎流行的答案是“不要避免它”。我可以理解,用户应该在删除安全性时收到消息。但是当我关注链接并删除安全性时,我没有得到对话框,所以至少我说这是不一致的。

对话框/浏览器版本。我实际上没有在IE7 / FF3中看到对话框(也许我点击了一个阻止它的复选框)。更重要的是客户端在IE6中看到它 - 没有复选框删除它(是的,我知道IE6是旧的和废话)。

Firefox2:FF2 http://img521.imageshack.us/img521/8455/sslwarning.jpg

IE6:IE6

替代方案:使整个站点成为SSL,永远不会将用户重定向到SSL之外。我能解决这个问题。但我有一个半技术客户,他有一些相当不错的观点:

  • “SSL将导致流量/处理能力的增加”。我不是真的买这个,我不认为他的网站每个都需要不止一个盒子来服务它。
  • “雅虎做到了。雅虎是一家大型技术公司。你比雅虎聪明吗?”

我将尝试将客户端转移到完全SSL站点。我认为雅虎的方法在1996年是有意义的,或者对于一个更受欢迎的网站而言。一些官方链接解释了为什么这种对话发生会有所帮助(即雅各布尼尔森的真实性水平)。

8 个答案:

答案 0 :(得分:8)

我曾经遇到过同样的问题。所以我看看里面的小提琴手,看看雅虎邮件是怎么做到的。这是我看到的(并在我的网站上使用)的步骤:

用户填写SSL加密表单,并向服务器发送POST。服务器进行身份验证,并吐出一些脚本以重定向客户端

<script language="JavaScript">
<!--
window.location.replace("~~ non-SSL URL ~~");
// -->
</script>

我认为客户端代码可以避免此对话框。

答案 1 :(得分:5)

“我该如何避免这种情况?”

你不应该!

虽然您可以尝试使用JavaScript。这可能适用于某些浏览器,而其他浏览器则失败。

“此对话框的目的是什么?”

它会发出警告,因为用户通常会在网站上切换SSL和非SSL。不会发出关于“非SSL到SSL”的警告,因为它增加了安全性和隐私性。然而,当安全性突然减少时,用户应该快速注意到,以避免错误的安全感。实际上,有时会在XSS / MITM攻击中使用重定向到非SSL站点。

“SSL将导致流量/处理能力增加”

这是胡说八道。对于充满大型静态内容的网站来说,这可能是真的。但是,对于普通的动态Web应用程序,与业务逻辑,数据库访问等相比,加密非常便宜。

有一个城市传说说SSL内容不受浏览器的限制。有关详细信息,请参阅“Will web browsers cache content over https”。

“雅虎做到了。雅虎是一家大型技术公司。你比雅虎聪明吗?”

一些言辞反问题:

  • 您是雅虎这样的大型技术公司吗?
  • 成为一家大型技术公司是否阻止微软生产蹩脚的软件?
  • 你必须支持糟糕的旧(SSL破解)浏览器,就像雅虎一样吗?

答案 2 :(得分:1)

首先对整个页面使用SSL

SSL没有任何问题。您应该在任何地方提供用户隐私,而不仅仅是登录时。这对整个网站都有意义。因此,只需将所有非SSL页面重定向到SSL页面并保留所有SSL。

答案 3 :(得分:1)

至于目的:这是为了让您意识到您的连接不再是SSL加密的。您之前可能已经看到连接已加密并且可能认为它仍然存在,因此此警告说“只是要清楚,您从此处发送的任何数据都将是纯文本”

至于如何压制它: AFAIK你不能,它是一个浏览器的东西,否则消息的重点是什么?即使有像客户端重定向的解决方法,我不要认为你应该尝试解决这样的客户“问题”。如果浏览器选择了详细,请让它。 在所有之后,对话框上有一个“不再显示此内容”复选框如果用户希望禁止此消息,他可以轻松地这样做,也许他真的很喜欢看到它。
此外,恕我直言,如果浏览器值得它的盐,它仍会弹出这个警告,即使你采用客户端重定向技巧。

答案 4 :(得分:1)

这可以防止的攻击是一个中间人的SSL会话带。消息是有充分理由的。

答案 5 :(得分:1)

只需将您的客户端指向针对混合模式内容的最新攻击(在fscked.org上查找CookieMonster)和代理攻击(针对http和https中可用的站点,查找Pretty-Bad-Proxy)。他可能会重新考虑。

如果你只处理一个协议而不混合两个协议,那么获得安全权会容易得多。 SSL增加了一些开销,但与违规成本相比,它没什么用。

答案 6 :(得分:0)

Gmail,雅虎等使用SSL进行身份验证的加密iframe,但没有您正在讨论的页内重定向。对于这些登录系统,整个页面未加密。

答案 7 :(得分:0)

读: http://support.microsoft.com/kb/883740 这表示这是在修补程序或更改的注册表设置中修复的。但是,并非我们使用的所有IE6 cpu都有这个问题,它们的注册表设置也不符合本文所说的内容。还有一些给出了msg的是XPsp3和IE6 sp3。

我们有一个https登录屏幕,它使用代码登录到其他15个(http)域,我们的一些IE6用户必须单击“是”15次。这对他们来说是不可接受的。 不,我们无法控制所有用户使用的浏览器。有些与升级到IE7不兼容。

我们正在为每个用户调整一些配置属性来调整它将抑制此消息。我们同样使用与不提供消息的设置相匹配的“坏”浏览器。 Internet和Intranet安全和高级设置和代理(无)。还有网络连接。到目前为止没有喜悦。

有什么想法吗?