添加了 SEA (gun.user()) 的 GUN 节点不安全?

GUN node added with SEA (gun.user()) not secure?

创建新用户后,进行身份验证并添加一些数据。在第二个浏览器中,可以轻松删除数据...我做错了什么?

第一个浏览器(Firefox 专用 window):

<!doctype html>
<meta charset="utf-8">
<body>
    <script src="https://cdn.jsdelivr.net/npm/gun/gun.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/gun/sea.js"></script>
    <script>
        localStorage.clear()
        var gun = Gun({ peers: ['http://localhost:8765/gun'] });
        var user = gun.user();
        user.create('u1','p1',()=>{
            user.auth('u1','p1', ()=>{
                user.set({some:'thing'}).on(() => {})
            })
        })
    </script>
</body>
</html>

第二个(Chrome隐姓埋名):

<!doctype html>
<meta charset="utf-8">

<body>
    <script src="https://cdn.jsdelivr.net/npm/gun/gun.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/gun/sea.js"></script>
    <script>
        localStorage.clear()
        var gun = Gun({ peers: ['http://localhost:8765/gun'] });
        gun.on()
    </script>

</body>

</html>

端口 8765 上的对等点从 examples 开始 http.js

在第二个浏览器中的存储 localStorage.getItem('gun/') 之后,我得到以 undefined 为前缀的节点,例如:undefined~@u1undefinedSoulfofsomething 我也可以使用 [= 删除内容18=]。 如果这是正常行为,如何保护数据免受攻击?唯一的选项是 bulletcatcher?

编辑:

This should now be fixed in latest GUN 0.2020.421!

@brezyl 感谢您提出这个问题,如果您看到 undefined~@... 确实看起来像一个错误并且数据没有保存到应该保存的位置(受保护的用户 space).

我会紧急检查此事,如果有人遇到同样的情况,我也会向社区发送通知。

到那时,是的,请使用不同版本的 GUN & SEA,或者假设 undefined 表明 erros/bugs 正在进行,从而导致安全损失。

更新:

@brezyl 更新:到目前为止,我注意到 .put( 似乎没问题,原始值 .set( 似乎没问题,但 .set(object 不正常或不安全。进一步调查。

@brezyl 更新:我找到了 2 种方法来修复它,并且将同时使用这两种方法来添加额外的故障保险。希望尽快发布(tests/review 可能需要一段时间)。