【问题标题】:Password Protect HTML5 Offline Application Directory密码保护 HTML5 离线应用程序目录
【发布时间】:2010-09-16 09:57:28
【问题描述】:

我有一个可以离线运行的 HTML5 应用程序。但是,我需要密码保护这个应用程序所在的目录,只允许授权用户访问。最初我使用的是一个 PHP 登录页面,它设置了一个 cookie(在应用程序目录之外),然后重定向到应用程序目录。应用程序 (JavaScript) 会检查 cookie,如果它在那里,它会让用户运行应用程序。如果没有,它会将它们重定向回应用程序目录。

这种方法的问题是,如果直接引用,目录中的所有文件仍然可以访问(我不希望这样做)。我不希望用户每次访问目录时都必须进行身份验证(这是一个一次性的身份验证过程;cookie 就在那里,这样他们就不必再次输入用户名/密码),而且我也想要一个风格化的登录表单(即不使用默认浏览器登录框进行 http 身份验证)。

最后,因为这是一个离线的 HTML5 应用程序,我不能在应用程序本身中包含任何 PHP 代码。

有什么建议吗?

【问题讨论】:

    标签: javascript authentication html offline


    【解决方案1】:

    这听起来不像是你可以用 Javascript 做的事情。该脚本需要访问文件系统才能限制对文件夹的访问,不是吗?

    除非浏览器通过 javascript API 公开此功能,否则我认为这是不可能的。听起来这将是一个有用的功能。

    也许您可以加密重要数据,但除了减慢应用程序的速度之外,我不确定它会有什么好处,因为所有必要的密钥也必须存储在本地......

    由于网络安全的一般规则是,如果没有对服务器端进行仔细检查,您永远不能依赖客户端发生的任何事情(例如,在 Javascript 中),当应用离线运行,服务器端不可用:(

    查看“如果 cookie 存在则进行 Javascript 重定向”问题,除非我弄错了,否则恶意用户编辑 Javascript(例如使用 Firebug)在任何情况下都进行重定向是微不足道的。

    编辑:顺便问一下,您需要什么级别的安全性? “妈妈将无法意外访问我的帐户”级别(听起来您已经做到了),或者“除了 NSA 之外,没有人应该能够破解它”级别?

    【讨论】:

    • 我希望我可以对您的每个段落进行内联回复,因为您提出了一些非常好的观点。我会尽力解决每一个问题。我同意理想情况下这需要是当前不存在的浏览器 API 实现。那将是最好的情况,但只是不可用。至于加密,我在这里提出的最佳方案是将“公钥”通过电子邮件发送给用户,以便他们可以“解锁”应用程序(即解密)。不是最好的情况,但它至少增加了额外的保护级别。 ...(在下一条评论中继续)...
    • 我尝试过使用 http 身份验证,但是一旦用户离线(原因很明显)它就会失败,所以在这种情况下或基于 PHP 的服务器端身份验证中,它只是不是一个选项。至于通过 Firebug 编辑 JS,我同意这是一个问题。出于这个原因,除了“公钥”方法(或作为替代 - 尚未完全决定是否使用该方法)之外,现在还内置了多个级别的检查(cookies、localStorage 等)。 )。诚然,精明的用户仍然可以绕过它,但它需要大量的代码剖析......
    • 最后,重新。安全级别 - 我想我想介于两者之间。假设我希望 StackOverflow 用户无法访问我不希望他们访问的文件(也许这意味着比 NSA 更安全 - 不确定;))
    • 归结为它是一款付费应用。客户不希望人们在不付费的情况下访问它。但他们也了解技术缺陷,因此愿意选择“最佳情况”。我只是想确保我在不留漏洞的情况下交付它。
    猜你喜欢
    • 1970-01-01
    • 2017-11-26
    • 2015-08-14
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多