添加了 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~@u1
和 undefinedSoulfofsomething
我也可以使用 [= 删除内容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 可能需要一段时间)。
创建新用户后,进行身份验证并添加一些数据。在第二个浏览器中,可以轻松删除数据...我做错了什么?
第一个浏览器(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~@u1
和 undefinedSoulfofsomething
我也可以使用 [= 删除内容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 可能需要一段时间)。