通过浏览器

时间:2017-02-06 14:43:26

标签: security cors local

我正在构建一个配置本地网络设备的应用程序。

可以在设备上嵌入HTTP服务器,并设置mDNS为其提供可解析的主机名,如my-device.local也可以。

现在的问题是:设备没有足够的存储空间来存储复杂的Web应用程序,即使是简单的表单也在推动限制。

此外,在设备尝试联系网络服务之前,需要执行一些与网络服务通信的操作(例如将设备注册到您的帐户)。

这就是为什么我想构建一个实现以下流程的应用程序。

  1. 在浏览器https://online.service.net上打开https网络服务并执行操作
  2. 重定向到http://online.service.net
  3. 使用来自浏览器的后台http请求(其中Web应用仍在缓存中)通过本地网络与设备https://device.local通信。
  4. 这里的问题是,在第3步中,整个网页需要在http上提供,因为CORS会阻止https - > http来电。因此,网络应用程序将部分提供给https,部分超过http,这看起来很糟糕,而且有些浏览器(例如最近的Chrome版本)会抱怨。

    我能想到的其他解决方案:

    • 让设备使用https,这需要device.local域的证书,没有权限授予我们,因此用户需要手动接受它们。另外,他们需要安全存放。
    • 让网站和设备与第三台服务器通信。这是不可能的,因为该设备不一定具有互联网连接(这实际上是我尝试设置的部分)。即使它有,将设备与浏览器会话相关联也可能很难。
    • 而不是重定向到http://online.service.net,而是重定向到http://device.local,而只是对适合设备的更简单的表单感到满意。这没关系,已经是"后备"此流程的模式。但它打破了服务的其他一些要求。现在无法知道设备何时在网络上实际处于活动状态,这是通过从网页上通过http轮询设备来完成的。这为设备未正确连接的用户带来了很多错误,因此无法找到。

0 个答案:

没有答案