为什么service worker不能在http站点上工作?
Why does service worker won't work on http sites?
我正在学习service worker API。我发现它有更多很酷的功能。但令我兴奋的是为什么它只在https网站上工作,而不是在http网站上?
我相信这与安全有关,但我在浏览时找不到原因。因此,任何解释都是值得赞赏的。
由于service worker非常强大,即使在原始页面不再打开时也可以运行,因此您确实需要限制谁可以设置service worker,谁不能。由于普通HTTP请求很容易成为中间人,任何随机的Javascript都可以被注入到这样的请求中,这可能会建立一个service worker。这意味着,你的ISP,像中国这样的政府,或者一个严重的攻击者可以很容易地设置服务工作者。通过要求HTTPS连接,在很大程度上避免了中间人,并且您至少可以确保设置service worker的Javascript实际上来自您认为的页面。
补充@ decze的答案,如果攻击者中间人连接到一个HTTP站点,它只能在这一次破坏该站点-稍后连接到该站点不能保证被破坏,例如依赖于本地网络访问的攻击,可能不容易复制。
如果一个人可以在http网站上使用service worker,那么攻击者只需要进行一次中间人攻击就可以永远(或者至少直到该浏览器被清除)获得该网站内容的来源。
相关文章:
- JQuery-在本地工作,但未定义$,仅在部署的站点上定义
- 将搜索按钮从一个站点复制到另一个站点:此搜索按钮如何工作,以及如何重现其操作
- 为什么jQuery可以在jSfiddle中工作,但不能在站点中工作
- 幻灯片在本地工作,但在实时站点上不工作
- 为什么我的程序在我的测试环境中工作,而不是我的实时站点
- 从 iframe 访问主站点中的工作 JavaScript
- Javascript API在主站点上运行良好,但在外部服务器上无法正常工作
- 为什么我的 javascript 在测试环境中工作,但在实时站点上不起作用
- 在jsFiddle中工作,但不在实时站点上工作
- 单击按钮在一个站点上工作,但在其他站点上不工作
- 从嵌入式html文件站点访问google工作表条目
- Ruby on rails,ajax on pagination bug,在更改站点之前工作
- 代码在JSFiddle中隔离时可以工作,但在站点时给出错误
- 为什么没有AJAX的站点可以在HTTP上工作,而不能在Data URI模式下工作
- 站点在本地工作/不在Openshift上工作(与服务器、全局npm包版本同步本地、全局npm包版本)
- jquery . twitter .js只能在一个站点上工作
- 使用jQuery验证插件:onfocusout, onkeyup在生产站点上没有像预期的那样工作
- PHP: file_get_contents不能与某些javascript站点一起工作
- 工具提示在本地主机上工作,但不在已部署的站点上
- 为什么service worker不能在http站点上工作?