ReactJS 有没有办法发送 HTTP 请求?

Lyn*_*nob 6 https http http-headers reactjs progressive-web-apps

我们与移动网络运营商 (MNO) 合作,他们希望向平台添加HTTP 标头丰富(HE) 功能。

MNO 能够在 HTTP 标头中注入用户手机号码,这样,用户将不再需要登录平台,只要他使用 MNO 的移动网络,我们就可以自动对其进行身份验证。手机号码当然是加密的。

MNO 有很多客户端使用 HE,他们使用 HTTPS,但他们可以做一些事情,比如创建一个单独的登陆页面,用户使用 HTTP 登陆它,然后他们从那里获取 HTTP 标头并将他转发到 HTTPS 页面。之类的把戏。显然,HTTPS 是加密的,所以这仅适用于 HTTP。整个过程必须从客户端完成。

问题是我们有一个 ReactJS PWA,不像普通网站,如果你做任何 HTTP 请求,它会给出混合内容错误,所以即使我们创建了一个 HTTP 登陆页面,我们也无法将响应转发到 PWA。有没有办法解决这个问题?

Sch*_*eme 2

不,这是一件好事。

大多数解决方法现在都被主要浏览器阻止,正如您所说,您将遇到混合内容问题。Firefox 是最后一个默认实现此功能的浏览器,您可以在此处查看文档。

对于那些不了解混合内容危险的人,以下文章给出了合理的概述:howtogeek。虽然您表示您认为使用 AES 加密手机号码没有问题,但我建议您重新考虑。一般来说,破解手机号码比破解密码容易得多(但也不要发送密码!),并且是身份盗窃的关键组成部分,无论是否可以通过其他方式获得。

在我看来,正确的方法是让用户正常进行身份验证。

我在下面包含了rfc2616-sec15中的一个片段,我相信它是相关的,并鼓励您再次考虑替代方案。

HTTP 客户端通常掌握大量个人信息(例如用户的姓名、位置、邮件地址、密码、加密密钥等),并且应该非常小心,防止这些信息通过 HTTP 协议无意泄露给其他来源。我们强烈建议为用户提供一个方便的界面来控制此类信息的传播,并且设计者和实现者在这方面要特别小心。历史表明,该领域的错误常常会造成严重的安全和/或隐私问题,并对实施者的公司产生非常不利的声誉。