我有一个通过 SSL 提供服务的登录屏幕。用户填写他们的登录名/密码,这将被发布到服务器。此时我想跳出 SSL,因此我将它们重定向回没有 SSL 的同一页面。
这会导致浏览器显示警告对话框“您将被重定向到不安全的连接”。我怎样才能避免这种情况?我见过很多网站,例如 yahoo mail 和 gmail,它们为您提供 SSL 登录页面,然后将您发送到非 SSL 页面。
第二个问题:这个对话框的目的是什么?它试图警告我一些邪恶的目的 - 但是将某人重定向到非 SSL 页面有什么不好呢?当我在 SSL 页面上单击非 SSL 链接时,我没有收到警告。重定向某人有什么不同?
我正在 ASP.NET 2.0 中执行此操作 - 但我认为这是一个通用的 Web 开发问题。
更新摘要:似乎流行的答案是“不要避免它”。我可以理解,当安全性被删除时,用户应该收到一条消息。但是当我点击链接并且安全性被删除时,我没有收到对话框,所以至少我会说这是不一致的。
对话框/浏览器版本。实际上,我在 IE7/FF3 中没有看到该对话框(也许我单击了阻止它的复选框)。更重要的是,客户端确实在 IE6 中看到了它 - 没有复选框来删除它(是的,我知道 IE6 很旧而且很糟糕)。
火狐2:FF2 http://img521.imageshack.us/img521/8455/sslwarning.jpg
IE6:
另一种选择:使整个站点采用 SSL,永远不要将用户重定向到 SSL 之外。我能处理好。但我有一个半技术客户,他有一些相当好的观点:
- “SSL 将导致流量/处理能力的增加”。我不太买这个,而且我认为他的网站不会需要多个盒子来提供服务。
- “雅虎做到了。雅虎是一家大型技术公司。你比雅虎聪明吗?”
我将尝试将客户端转移到完全 SSL 站点。我认为雅虎的方法在 1996 年是有意义的,或者对于一个更受欢迎的网站来说是有意义的。一些解释为什么会发生此对话框的官方链接会有所帮助(即雅各布·尼尔森的真实性级别)。
我不久前也遇到过同样的问题。所以我查看了 fiddler 的内部,看看 yahoo mail 是如何做到这一点的。这是我看到的步骤(并在我的网站上使用):
用户填写 SSL 加密表单,然后 POST 到服务器。服务器进行身份验证,并发出一些脚本来重定向客户端
<script language="JavaScript">
<!--
window.location.replace("~~ non-SSL URL ~~");
// -->
</script>
我认为客户端代码是为了避免出现此对话框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)