我需要允许用户在浏览网站时登录到网络应用程序。所以实际上他们可以用较少的权限浏览站点,要获得完整的权限,他们必须登录。所以我需要允许他们登录,同时让他们保持在同一页面上,最好是通过对话框/覆盖或弹出式的东西,让他们在同一页面上使用用户名/密码凭据登录。
现在的问题是,我想通过 http 为整个站点提供服务,而只是通过 https 登录/注册,那么当登录对话框时,我如何从普通页面(该用户当前正在浏览)上的 http 切换到 https框显示在同一页上?最好我想允许在同一页面上登录。我该如何实现这种行为?
最佳答案
根据您的描述,我假设您是在一个隐藏位置栏的弹出窗口之后,无论它是一个不同的窗口(旧式弹出窗口)还是页面上的一个元素(AJAX 样式的弹出窗口)上)。
此类弹出窗口的主要问题是它们往往会阻止用户检查 URL。用户将无法检查是否使用了 https://
,它是否与他们期望的站点一起使用以及没有发生证书验证错误。
不幸的是,只有用户可以检查这一点,而不检查这一点会使连接容易受到 MITM 攻击(例如网络钓鱼)。
如果您想要安全,用户需要能够检查他们登录的位置(不仅仅是您的主站点,还有他们输入密码的页面)。
(此身份验证问题也与您问题的第二部分相关联:您不能真正使用自签名证书,因为您的用户不会真正知道如何信任它。)
关于html - 通过一些弹出窗口登录(通过 https),同时浏览网站并在同一页面上(通过 http),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693867/