【发布时间】:2012-02-24 01:04:51
【问题描述】:
当用户登录我的网站时,我会将他重定向到 https:// URL。 (https://www.gruppenunterkuenfte.de/anbieter-bereich.html?next=/#einloggen)
如果用户在他的机器上设置了错误的日期(过去一年),则证书将被视为无效,因为它是从 2012 年 1 月 3 日开始颁发的。
使用此无效证书,Safari 和 Chrome 会缝合以阻止从外部源加载的脚本。 (例如:https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js),导致无法登录。
现在我的问题是,什么是解决这个问题的好方法?
- 在 JS 代码中发送服务器日期,并将其与 JS 与用户当前时间进行比较。如果相差超过 24 小时,请向用户显示正确设置日期的警告。但这对用户来说可能很烦人......也许他们没有更改它的权限。
- 不要从外部域加载 JS 文件。那么证书仍然是无效的,但页面会起作用。不过,出于性能原因,我更喜欢从 ajax.googleapis.com 加载脚本。
- 是否可以获得在用户设置的任何日期都有效的证书?
- 还有其他我没有想到的解决方案吗?
【问题讨论】:
-
这真的是个问题吗?我的意思是,有多少用户的系统日期设置错误?寻找解决方案可能不值得投资 imo。
-
嗯,我的老板有,这就是问题所在 :-) 我认为如果日期是当前日期,某些应用程序许可证已过期。
-
所以解决方案 1 被排除。你是对的 2,继续从谷歌 CDN 加载。关于 3,不要认为没有开始日期或当前日期之前的日期就可以获得证书。所以 4 是:告诉你的老板更新他的执照 =)
-
尊敬的,您的老板应该有诚信为他/她的软件付费(如果许可证需要)或停止使用它。如果这不是一个选项,那么您会遇到比错误日期更大的问题。
-
@Conrad Shultz:我完全同意。虽然我不知道这是否是肯定的原因。它只是我能想到的唯一一件事,为什么人们可能想要一个旧的系统日期。仍然可能有更多用户设置了旧系统日期。
标签: php javascript ssl cross-domain