问题标签 [secure-context]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8056 浏览

javascript - 使用 node.js/Express 从 HTTP 重定向到 HTTPS

有什么方法可以更改我的网络应用程序以侦听 HTTPS 而不是 HTTP。我正在使用 node.js/express。

我需要它来监听 HTTPS,因为我使用的是地理位置,Chrome 不再支持,除非从 HTTPS 等安全上下文提供服务。

这是当前侦听 HTTP 的当前“./bin/www”文件。

0 投票
1 回答
23 浏览

progressive-web-apps - 无论移动设备上的安全上下文/HTTPS如何,语音消息捕获都不再起作用

我正在构建一个约会安排网络应用程序(类似于日历),它允许用户在某些时间点留下语音消息(解释),其他人可以在他们方便的时候远程检索。它在PC上运行良好,但我无法让它在手机上运行。显然,新的安全上下文标准已经到位(WebRTC?)并且必须提供安全上下文,但是尽管我使用的是 HTTPS(SSL 站点/域),但我无法让它在任何主要浏览器中工作。我还能如何提供这样的安全上下文?

我附上的代码非常流行并且过去运行良好(它仍然在笔记本电脑上运行!)。我该怎么做才能在手机(IOS、Android、平板电脑)上提供正确的上下文?感谢您的任何帮助。

0 投票
1 回答
97 浏览

security - 如何在 Intranet 中处理需要安全上下文的 Web 应用程序?

我有一个 Web 应用程序,供客户在 Intranet 中使用。它使用需要安全上下文的功能,例如getUserMedia. 这些天的最佳做法是什么?

客户几乎没有技术知识,应用程序可能只是路过的人使用,因此在浏览器上创建和安装证书颁发机构太麻烦了。尽管在安装过程中需要它是可以接受的,但不能保证始终有 Internet 连接。TLS 证书的警告消息是可以接受的(不理想,但可以解释),但自签名证书并不能解决问题,因为它们仍然被认为是不安全的上下文。我无法控制 Intranet,运行服务的设备只能通过 IP 访问,无需主机名或本地 DNS 服务器。

有哪些替代方法可以获得尽可能无摩擦的安全上下文?

0 投票
1 回答
1163 浏览

javascript - 没有 ssl 的 Web 加密 API

我写了一个用于安全消息传输的小 Web 应用程序以了解有关加密的更多信息,并想将它展示给我的朋友并让他们玩一点,所以我将它托管在我的小服务器上,并震惊地发现 Web Crypto API(我拼命开始工作,因为它的错误消息不是很具体)需要 SSL(有点违背在浏览器中实现自己的加密方案的目的)!

我已经在该服务器上使用 SSL 运行了另一个 API,但我不想合并它们,而是想问:有没有办法绕过 Web Crypto API 的安全套接字要求,或者是否有另一个库允许我使用非安全上下文中的相同或相似功能?

0 投票
1 回答
107 浏览

javascript - 检查页面是否通过 https 安全地提供

我正在创建一个向网站公开额外 API 的 chrome 扩展。在网站可以使用这些 API 之前,如果网站是通过 HTTP 而不是 HTTPS 提供的,我想显示一个警告。这是因为这些 API 减少了 Web 沙箱,如果来自网站的 JavaScript 源未经验证来自正确的一方,则可能会更加危险。

有没有一种可靠的方法可以用来检查网站是否通过 HTTPS 提供服务?
也许是 chrome 扩展 API(例如在内容脚本中)?

如果证书出现问题,检查location.protocol似乎可能不准确:如何通过 JavaScript 确定页面是否安全?

0 投票
1 回答
3974 浏览

node.js - 自签名证书仅适用于 localhost,不适用于 127.0.0.1

我正在尝试生成一个自签名证书,以便我的本地开发环境使用 HTTPS,但我遇到了一些麻烦。这样做的原因是我想通过我的本地网络(通过我的本地 IP 192.168.1.155)在我的手机上测试推送通知,并且通知只能通过安全上下文工作。

它似乎只在我去的时候工作localhost:8080,并且在导航到时仍然不安全127.0.0.1:8080。当我导航到127.0.0.1:8080Chrome 的安全页面时说:This site is missing a valid, trusted certificate (net::ERR_CERT_COMMON_NAME_INVALID).

这是我用来生成证书的设置:

请求.cnf:

openssl req -newkey rsa:2048 -x509 -nodes -keyout key.pem -new -out cert.pem -config req.cnf -sha256 -days 3650

我想也许我的CNalt_names不正确的,但我不确定将它们更改为什么以使站点始终安全运行(通过 localhost、127.0.0.1 或 192.168.1.155)

0 投票
1 回答
459 浏览

javascript - 从 HTTPS 页面到 HTTP(非 HTTPS)本地主机地址的混合内容请求未被阻止

假设下面的页面是从 加载的https://127.0.100.1。该页面生成一个XMLHttpRequest to http://127.0.100.2。这似乎是混合内容:页面通过安全连接加载,资源通过不安全连接加载。混合内容应被浏览器阻止。然而,下面的页面工作得很好。*为什么它工作:为什么请求没有被阻止?

更新:除了接受的答案之外,可以将浏览器配置为阻止此类地址的混合内容。

* Wireshark 确认浏览器没有通过安全连接加载资源。

0 投票
0 回答
388 浏览

firefox - Firefox 76 是否可以强制将 .localhost 子域视为没有 tls 的安全上下文?

我们使用 .localhost 域来开发我们的应用程序,并且我们有多个应用程序位于不同的域中。我们现在需要测试需要页面在安全上下文中执行的功能,即服务工作者和推送 API。

过去几个版本的 Google Chrome 一直将来自 .localhost 域的所有站点标记为安全上下文,从而允许对 Service Worker、Push API 等进行本地、无忧的测试。

我找不到强制 Firefox 76 考虑来自安全上下文的相同页面的方法。

我们已经设法使用本地 dns-resolver 设置或内置浏览器行为在所有浏览器中将所有 .localhost 地址正确解析为 127.0.0.1。

Firefox 配置条目network.dns.localDomains似乎不会影响站点是否被认为处于安全上下文中。

似乎有某种 FF 内部开发来改变这种开箱即用的行为,但很难说它什么时候会被合并和发布,如果 *.localhost 中的所有页面肯定会被视为安全上下文:
https://bugzilla.mozilla.org/show_bug.cgi?id=1220810

0 投票
2 回答
460 浏览

javascript - 使本地网络 IP 成为安全上下文?

在不安全的环境中不支持 Web 的许多功能。

例如,如果没有运行API, crypto.subtleAPI 就是.undefinedhttps

我一直在开发localhost,这里有一个例外,上下文仍然被认为是安全的,并且一切正常。

但是,现在我正在我的移动设备上进行测试,这意味着我现在正在192.168.1.xxx从我的计算机连接到。因此,它不再是一个安全的上下文,并且我无法访问我需要的某些 API。

我怎样才能解决这个问题?如何使用计算机的 IP 地址在移动设备上测试我的应用程序,并访问仅在安全上下文中可用的 API?

0 投票
2 回答
1689 浏览

google-chrome - Firefox 中是否有相当于 Chrome 标志的“不安全来源被视为安全”?

Insecure origins treated as secure在 Chrome 中使用“”标志用于开发目的,并且添加了一些网站,例如http://myWebsite:port. 它在 Chrome 中运行良好。现在我在 Firefox 中需要相同的功能,但找不到它。在 Firefox 中可以这样做吗?