小编clu*_*ter的帖子

在没有数组的情况下排除 Mongodb 中的嵌套子文档

以下是如何将数据插入到“产品”MongoDB 集合中(使用 Meteor):

Products.insert(
{
    productOne:
    {
        publicData:
        {
            pricePerUnit : 1,
            label : "The first product"
        },
        privateData:
        {
            test1: "xxxxx",
            test2: "xxxxx"
        }
    },
    productTwo:
    {
        publicData:
        {
            pricePerUnit : 2,
            label : "The second product"
        },
        privateData:
        {
            test1: "yyyyy",
            test2: "yyyyy"
        }
    }
}
);
Run Code Online (Sandbox Code Playgroud)

我想检索所有产品,但没有“privateData”子文档,以获取以下信息:

{
    productOne:
    {
        publicData:
        {
            pricePerUnit : 1,
            label : "The first product"
        }
    },
    productTwo:
    {
        publicData:
        {
            pricePerUnit : 2,
            label : "The second product"
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

mongodb meteor

4
推荐指数
1
解决办法
1078
查看次数

初次握手后,我可以安全地依赖 WebSocket 连接吗?

典型场景:

1) 客户端使用 HTTPS 在 POST 请求中将其凭据发送到服务器。

2) 服务器验证凭据是正确的,并对用户进行身份验证。因此它向客户端返回一个 JWT(JSON Web 令牌)。

3) 客户端打开一个非安全的WebSocket 连接 (ws://)。所以客户端和服务器现在有一个通道可以轻松交换数据(确切原因在这里无关紧要)。

4)用户通过WebSocket和JWT一起向服务器发送任何类型的请求,服务器可以验证这些请求是否合法。

5) 服务端每次请求成功验证JWT后,使用WebSocket通道返回用户询问的数据。

因为我们使用了 HTTPS,所以我们假设 JWT 在发布时没有被盗(HTTPS 可能会被击败,但我们假设它对我们的目的来说是正常的)。

我们使用非安全 WebSocket 的事实意味着有人可以嗅探 WebSocket 通道的流量并在心跳中窃取 JWT。因此,我们改用 WebSocket Secure (wss://) 并应用相同的先前场景。

现在我们正在使用 WebSocket Secure,当我们使用 WSS 通道时,我们是否需要在我们向服务器发出的每个请求中继续发送 JWT?或者 WebSocket 安全通道是否足够安全,因此服务器和客户端都 100% 确定(只要 TLS 没有被击败)该通道是合法的?

换句话说:一旦安全建立了 WSS 通道,我们可以信任它吗?(直到连接明显关闭)

我真的不明白 WSS 连接是如何建立的,以及一旦建立它是如何工作的。我的理解是:关键部分是握手,一旦握手完成,您就可以安全地依赖 WSS 通道(因为它可以防止使用 TLS 的 MITM 攻击,而 WS 不会这样做)。

最近几天我读了很多关于这一切的东西,但有些概念仍然不清楚。任何帮助将不胜感激!

ssl websocket

3
推荐指数
1
解决办法
827
查看次数

标签 统计

meteor ×1

mongodb ×1

ssl ×1

websocket ×1