首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何允许网站通过HTTPS调用我的桌面应用程序?

如何允许网站通过HTTPS调用我的桌面应用程序?
EN

Security用户
提问于 2014-03-21 18:10:38
回答 2查看 1.6K关注 0票数 3

我正在构建一个桌面应用程序。我希望网站能够通过HTTPS与应用程序进行沟通。一般的想法是,网站可以运行对https://127.0.0.1:8844的JSONP调用并将数据发送到桌面应用程序。

问题是大多数较新的浏览器都不允许您在后台调用未经授权的HTTPS站点,所以我的自签名证书阻止浏览器调用我的应用程序。

我想到的解决方案是注册local.myapp.com,将其指向127.0.0.1,并让证书权威机构为其签名。这个应用程序是开源的,所以我必须将证书/密钥分发给所有客户端。

将这些信息完全公开有什么安全含义?还有其他方法可以让现代浏览器将数据发送到桌面应用程序吗?

EN

回答 2

Security用户

发布于 2014-03-21 23:23:53

撇开安全问题不谈,似乎这不是一个好主意,就是在许多情况下,简单地说是行不通的。

我的解决方案很糟糕,但并不是世界末日,我的解决方案是构建浏览器扩展,在应用程序和浏览器之间进行通信。通过这种方式,扩展可以收集有关当前页面的信息,无论是http还是https,并通过ajax将其通过明文http发送到桌面应用程序。

票数 1
EN

Security用户

发布于 2014-05-02 02:16:23

首先使用CORS而不是JSONP进行研究,它更容易使用、更安全和更可靠,因为您可以使用jQuery进行错误处理。对IE8和IE9的支持是一塌糊涂的,但所有其他主流浏览器都能正常工作。您的web服务器后端代码只需发送几个HTTP头,它就可以开始处理常规AJAX请求。

如果您希望浏览器在使用您的服务之前接受自签名证书,那么它们需要首先在web浏览器的地址栏中手动键入服务器IP。它将首先抛出一个不必要的大警告,因此手动验证证书哈希与真实证书的散列,然后存储异常(信任证书)。或者,您可以将证书从服务器导出到文件,然后用户可以手动将证书文件加载到位于浏览器设置/首选项中的浏览器信任存储中。

直接从网站操作员(例如亲自)接收自签名证书,然后将其存储在浏览器的缓存中,比依赖第三方(如“证书颁发机构”)签名要安全得多。这实际上消除了活跃的MITM攻击,并解决了受损CA签署假证书的问题。然而,要使此工作,您还需要清除您的浏览器从所有预先签署的蛇油证书颁发机构,所以只有自我签名的证书是可信的。如果你把它们留在那里,那么一个沿着路由器跳到你的服务器上的攻击者(比如情报机构)可以拦截你的连接,动态创建一个假证书,向你出示浏览器已经信任的经过妥协的CA签署的假证书,然后积极使用MITM你的连接让你完全不知道,除非你手动检查连接细节,并意识到你没有让Verisign签署你自己签名的证书.由于从浏览器中删除了预受信任的根CA,并且您的自签名根CA显式信任,这是不可能的,如果证书更改,您将得到一个合法的可怕警告。

必修课:莫西·马林斯派克与真实性的未来.

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/53858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档