gpt4 book ai didi

javascript - 如何防止用户从本地保存的 Html 登录页面访问 Web 应用程序?

转载 作者:太空狗 更新时间:2023-10-29 13:30:12 26 4
gpt4 key购买 nike

我有一个被很多非技术用户使用的网络应用程序。我发现其中一些用户将应用程序的登录页面保存到他们的桌面(这也保存了相关的 CSS 和 JS 文件)。然后,要开始使用该应用程序,他们双击显示使用 file://协议(protocol)的本地副本的桌面图标。

这可能会在以后引起问题,例如如果我更改登录表单或它发布到的 URL 等。此外,某些 javascript 实用程序,例如PIE.htc 不能使用 file://协议(protocol)。

显然,他们应该做的是保存浏览器书签/收藏夹,我正在寻找一种检测和警告这些用户的方法,而不会混淆其他用户。我一直在使用一些 javascript 来警告这些用户:

if (top.location.protocol == 'file:') {
alert('This application is not designed to be accessed from a desktop copy...')
}

但这只会警告自从我添加了这段 javascript 后保存了桌面副本的用户。

有没有其他人遇到过这个问题并提出了他们愿意分享的巧妙解决方案?

谢谢

更新:

最后,我决定通过在登录页面请求时设置一个带有 nonce 值的 cookie,并将相同的值存储为表单中的隐藏字段来实现这一点。然后,在表单提交处理程序中,检查两者是否相同,如果不相同则显示错误消息。可以将随机数存储在 session 中而不是 cookie 中,但我不想创建不必要的 session 。

如果用户在本地保存了登录页面,与 cookie 相比,他们在保存的表单中可能会有不同的 nonce 值(如果他们有 cookie)。

通常情况下,人们不会向登录表单添加 CSRF 保护(就是这样),但它满足了我的要求。我在 The Register 上读到了这项技术,http://www.theregister.co.uk/2009/10/02/google_web_attack_protection/ , Google 对其登录表单实现了类似的保护,以防止伪造登录请求,http://en.wikipedia.org/wiki/Cross-site_request_forgery#Forging_login_requests .

最佳答案

我认为最好的办法是教育用户使用书签而不是保存物理文件。

除此之外,可能还有一种方法可以创建指向您的 URL 的快捷方式,也许是在登录期间?

关于javascript - 如何防止用户从本地保存的 Html 登录页面访问 Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com