Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

输入密码之后没反应 console报错如下 #114

Closed
dldxz opened this issue Oct 24, 2019 · 15 comments
Closed

输入密码之后没反应 console报错如下 #114

dldxz opened this issue Oct 24, 2019 · 15 comments

Comments

@dldxz
Copy link

dldxz commented Oct 24, 2019

blog-encrypt.js:94 Uncaught (in promise) TypeError: Cannot read property 'importKey' of undefined
at getKeyMaterial (blog-encrypt.js:94)
at HTMLDivElement. (blog-encrypt.js:255)

不知道是哪里的原因,按照readme里面直接安装的插件,配置也是和readme里面的一样
image

@dldxz
Copy link
Author

dldxz commented Oct 25, 2019

貌似是浏览器的问题,使用firefox没有问题,chrome版本为77.0.3865.120

@dldxz dldxz closed this as completed Oct 25, 2019
@dldxz
Copy link
Author

dldxz commented Oct 25, 2019

又发现本地起的hexo服务器在chrome里面能够正常使用,可以帮忙看一下问题出在什么地方吗?

@dldxz dldxz reopened this Oct 25, 2019
@dldxz
Copy link
Author

dldxz commented Oct 25, 2019

博客换成了https,不知道是不是这里的问题总之问题解决了

@dldxz dldxz closed this as completed Oct 25, 2019
@ghost
Copy link

ghost commented Nov 29, 2019

哥们儿 我和你报一样的错 咋解决的啊 怎么换https

@ghost
Copy link

ghost commented Nov 29, 2019

我域名还没备案 用的ip是不是没救了

@dldxz
Copy link
Author

dldxz commented Nov 29, 2019

我域名还没备案 用的ip是不是没救了

没备案的话我也不知道要咋解决 我的是国外买的域名 换https的话是在这里换的
https://letsencrypt.org/zh-cn/getting-started/
就是一个脚本一键执行就好了

@ghost
Copy link

ghost commented Nov 29, 2019

好的 谢谢 我也是本地起来什么浏览器都可以 访问服务器上的火狐可以 Chrome不行
移动端Chrome又可以 我备案以后再弄吧

@THSWind
Copy link

THSWind commented Dec 30, 2019

我也遇到同样的问题,但是域名是xxx.github.io,这种情况怎么解决啊

@dldxz
Copy link
Author

dldxz commented Dec 31, 2019

我也遇到同样的问题,但是域名是xxx.github.io,这种情况怎么解决啊

额github.io不是默认的https么 别的情况我也不知道

@NoneFire
Copy link

我也遇到同样的问题,但是域名是xxx.github.io,这种情况怎么解决啊

额github.io不是默认的https么 别的情况我也不知道

GitHub pages上有强制开启https的选项,开启之后就可以解决这个问题。

@darkduckgo
Copy link

darkduckgo commented Nov 17, 2020

大概率是因为 Chrome 已经开始阻止页面加载 http 资源.

英文版新闻: Google Chrome Will Block Mixed Content

中文版新闻: Chrome 将不再允许 https:// 页面加载 HTTP 资源

@D0n9X1n 作者你好, 很感谢你的插件, 写的很好, 也感谢维护和回答提问. 不过关于这个大家频繁反馈的报错问题
我觉得您的推测可能不是很对. 有以下几个原因, 我也自己亲测验证了一下:

  1. 首先就是 Chrome 只是默认禁止了 https 的页面加载 http 资源, 但是并没有限制 http 页面加载 http/https 资源. 否则无数内网/或者早些的网站都没法访问了.
  2. 其次 Chrome 的这个规则, 其实也不是直接禁止了 http 资源, 它实际做的是, 先强制把所有 http 资源尝试用 https 访问, 如果访问失败, 会明确在控制台提示加载https资源不存在, 然后退化后的http资源再默认禁止, 而且这个选项可以通过网站设置修改, (但是在当前报错下没有效果, 看起来并不是一个问题)
  3. 我在网页是 http 的前提下, 尝试手动修改了页面加载 encrpt.js 的地址为 https://xxx/lib/encrpt.js (文件存在). 发现仍然提示同样的错误. 然后本地加载成功, 实际访问的也是 http://xxx/lib/encrpt.js, 看起来并非简单的取决于js文件是否加载为 http/https 资源

看起来要寻找问题根本原因, 从本机部署时可以访问, 但 http 页面 + http/https 的js文件不能访问, 全https才可访问去看可能更好查找.

虽然看起来最后把站点切换为 https 解决了问题, 但是这看上去像是歪打正着的感觉, 有些原因网站无法https化的情况, 或者内网ip部署的情况下, 还是希望有人能提供一个解决方案, 或者有一个可供 http 使用的版本来兼容使用.

再次感谢作者的付出, 也希望给其他希望搞清根本原因的同学一点参考

@just-automatic
Copy link

大概率是因为 Chrome 已经开始阻止页面加载 http 资源.
英文版新闻: Google Chrome Will Block Mixed Content
中文版新闻: Chrome 将不再允许 https:// 页面加载 HTTP 资源

@D0n9X1n 作者你好, 很感谢你的插件, 写的很好, 也感谢维护和回答提问. 不过关于这个大家频繁反馈的报错问题
我觉得您的推测可能不是很对. 有以下几个原因, 我也自己亲测验证了一下:

  1. 首先就是 Chrome 只是默认禁止了 https 的页面加载 http 资源, 但是并没有限制 http 页面加载 http/https 资源. 否则无数内网/或者早些的网站都没法访问了.
  2. 其次 Chrome 的这个规则, 其实也不是直接禁止了 http 资源, 它实际做的是, 先强制把所有 http 资源尝试用 https 访问, 如果访问失败, 会明确在控制台提示加载https资源不存在, 然后退化后的http资源再默认禁止, 而且这个选项可以通过网站设置修改, (但是在当前报错下没有效果, 看起来并不是一个问题)
  3. 我在网页是 http 的前提下, 尝试手动修改了页面加载 encrpt.js 的地址为 https://xxx/lib/encrpt.js (文件存在). 发现仍然提示同样的错误. 然后本地加载成功, 实际访问的也是 http://xxx/lib/encrpt.js, 看起来并非简单的取决于js文件是否加载为 http/https 资源

看起来要寻找问题根本原因, 从本机部署时可以访问, 但 http 页面 + http/https 的js文件不能访问, 全https才可访问去看可能更好查找.

虽然看起来最后把站点切换为 https 解决了问题, 但是这看上去像是歪打正着的感觉, 有些原因网站无法https化的情况, 或者内网ip部署的情况下, 还是希望有人能提供一个解决方案, 或者有一个可供 http 使用的版本来兼容使用.

再次感谢作者的付出, 也希望给其他希望搞清根本原因的同学一点参考

这个是浏览器自带的功能, 不需要任何外部加载, 唯一的原因就是 This feature is available only in secure contexts (HTTPS).

localhost 能正常解密的原因是, localhost 加载的相当于是本地界面, 对于浏览器来说是无条件信任的

@Aqua-Dream
Copy link

Aqua-Dream commented Jan 26, 2021

难道不是因为http页面下chrome的window.crypto.subtle会返回undefined吗?可以在控制台进行测试。如果为https页面就能正常返回。

see: https://stackoverflow.com/questions/46468104/how-to-use-subtlecrypto-in-chrome-window-crypto-subtle-is-undefined

@darkduckgo
Copy link

darkduckgo commented Apr 25, 2021

@just-automatic @Aqua-Dream @D0n9X1n
非常感谢两位的补充分析和链接, 也感谢作者单独写文分享
这样之前的疑惑就基本都解释清楚了, 对混合加载文件, 以及不同浏览器下的策略也有更全面的认识.

之前因为我不熟悉前端相关内容, 只能通过实测和推测来分析, 始终不得其解.

最后就是, 看到作者表示对 HTTP 表示不能再爱, 补充说一下几个观点, 也算是另一个思考把 (HTTPS的安全性迷思?)

  • 尽可能的推广网页HTTPS化肯定是好的, 这个也需要大家一起努力, 也算是一个技术上的zz正确
  • 但是很多内网的情况下, 包括各大公司在内, 基本都不会开启全 HTTPS, 你也不能随意引入内外部证书, 这种情况实在不知道如何应对 (除了大幅度降级且不再更新)
  • 混合 HTTPS/HTTP 多半是网站已经 HTTPS 化了, 但是加载了 HTTP 资源 (多是图床, 外链接, 包括网易云这种), 并非是自己不愿意全站 HTTPS..
  • HTTPS的安全性仅限于, B/S建立连接的过程, 对其中内的内容是没有任何安全性保障的 (Chrome/firefox也特意修改了以前的安全说明)

HTTP固然更不安全, 但是HTTPS其实安全性也弱的可怜, 详见2020年网络安全欺诈/钓鱼页面分析, 高达80%的钓鱼网站现在都是HTTPS的, 混个免费证书, 套个壳非常简单
但是因为有所谓的浏览器绿色/安全锁标识, 虽然仅能保证安全 (连接), 却让很多小白用户反而以为 HTTPS == 安全页面 (可能也有不少技术用户), 实际HTTPS只保证了进入一个城堡的大门是安全的, 这个城堡本身如何, 是否暗藏机关, 没有任何的保证, 这才是最容易坑人的地方其实...

上面是一点HTTPS "安全性"的题外话, 技术人都是全面支持拥抱HTTPS的, 但是也希望能给HTTP一个选择, 类似参数/库允许内网/特定环境使用, 再次感谢大家解惑

@just-automatic
Copy link

just-automatic commented Apr 25, 2021

@just-automatic @Aqua-Dream @D0n9X1n
非常感谢两位的补充分析和链接, 也感谢作者单独写文分享
这样之前的疑惑就基本都解释清楚了, 对混合加载文件, 以及不同浏览器下的策略也有更全面的认识.

之前因为我不熟悉前端相关内容, 只能通过实测和推测来分析, 始终不得其解.

最后就是, 看到作者表示对 HTTP 表示不能再爱, 补充说一下几个观点, 也算是另一个思考把 (HTTPS的安全性迷思?)

  • 尽可能的推广网页HTTPS化肯定是好的, 这个也需要大家一起努力, 也算是一个技术上的zz正确
  • 但是很多内网的情况下, 包括各大公司在内, 基本都不会开启全 HTTPS, 你也不能随意引入内外部证书, 这种情况实在不知道如何应对 (除了大幅度降级且不再更新)
  • 混合 HTTPS/HTTP 多半是网站已经 HTTPS 化了, 但是加载了 HTTP 资源 (多是图床, 外链接, 包括网易云这种), 并非是自己不愿意全站 HTTPS..
  • HTTPS的安全性仅限于, B/S建立连接的过程, 对其中内的内容是没有任何安全性保障的 (Chrome/firefox也特意修改了以前的安全说明)

HTTP固然更不安全, 但是HTTPS其实安全性也弱的可怜, 详见2020年网络安全欺诈/钓鱼页面分析, 高达80%的钓鱼网站现在都是HTTPS的, 混个免费证书, 套个壳非常简单
但是因为有所谓的浏览器绿色/安全锁标识, 虽然仅能保证安全 (连接), 却让很多小白用户反而以为 HTTPS == 安全页面 (可能也有不少技术用户), 实际HTTPS只保证了进入一个城堡的大门是安全的, 这个城堡本身如何, 是否暗藏机关, 没有任何的保证, 这才是最容易坑人的地方其实...

上面是一点HTTPS "安全性"的题外话, 技术人都是全面支持拥抱HTTPS的, 但是也希望能给HTTP一个选择, 类似参数/库允许内网/特定环境使用, 再次感谢大家解惑

是的, 在 HTTPS 的安全加持下, 网站如果作恶那么就不可能存在安全。

  • 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
  • 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以在搜索结果中显示垃圾广告。
  • 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。
    可见,只要自身不做「恶」,SSL/TLS 协议是能保证通信是安全的。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants