2

我正在使用 GAE + Python 创建一个需要向客户端发送敏感数据实时更新的应用程序,我想知道App Engine Channel API是否安全。使用 HTTPS 就足够了,还是通道需要自己的安全协议?

另外, App Engine Channel API的底层实现是什么?Websockets,SSE?看起来它实际上只提供了一种通过通道从服务器到客户端的通信方式,然后让客户端使用标准的 HTTP 请求与服务器通信。

4

2 回答 2

5

与通道 API 的连接是通过 HTTPS 进行的,无论您的页面是如何加载的,因此不可能窃听通道 API 连接的内容。只要您对通道密钥保密,那么您的通道就是您的应用程序和客户端之间的安全通信通道。

通道是使用长轮询(彗星)实现的。

于 2012-04-18T05:29:25.943 回答
0

由于通道是服务器和客户端之间的长期有效连接,因此出于性能考虑,通道在许多情况下不允许使用资源消耗安全方法。正如官方手册中所声明的,服务器只通过HTTP请求接收来自客户端的更新消息。据我所知,即使 Dropbox 也通过 HTTP 发送其长期通知消息,使用非常短的通知来判断是否有新内容。

幸运的是,有两种方法可以确保您的安全。

  1. 仅在某些状态发生变化时通过 HTTP 通道通知您的客户端。之后,让客户端决定是否应该发出一个可以是安全通信的进一步请求。这是最常用的渠道使用方式。

  2. 虽然这不是我个人推荐的方式,但是你可以自己加密你的数据,然后把这些加密的数据放在不安全的 HTTP 通道上运行。

于 2012-04-18T03:21:54.183 回答