JS符号安全性-可以创建非唯一符号吗?

问题描述 投票:0回答:1

我正在编写一种奇怪的Web应用程序,旨在与加载到浏览器中的其他站点进行通信。通过MessageChannel做到这一点相当简单。现在,这些应用程序必须访问受保护的资源,并且必须获得用户的授权。由于没有服务器,因此不能使用允许其他应用程序与服务器进行通信的方式(例如OAuth):需要支持P2P和E2EE连接。我限制访问的一种想法是使用符号:例如,如果发送的消息引用了资源,则该消息可能包含该资源的符号。然后,如果另一个应用程序需要该资源,则可以使用该符号来检索它。

问题是我不确定这是安全的。 有没有办法故意创建不唯一的符号?如果是这样,则有可能将其用作我的Web应用程序中的攻击媒介:恶意的“客户端”应用程序可能会一直猜测符号,直到找到一个对应于有用的东西。

此外,如果有更好的方法可以执行此操作,或者您发现任何其他问题,请随时告诉我;)

EDIT:要澄清:应用程序A创建一个要提供给应用程序B的符号。使用此符号,应用程序B可以访问发送回给它的某些资源(文件,对象等)。在没有实际从应用程序A或B获得符号的情况下,应用程序C有什么方法可以访问与应用程序B的符号相同的符号?

EDIT:

确认绝对不能跨MessageChannel传输符号。因此,这个问题毫无意义...

我正在编写一种奇怪的Web应用程序,旨在与加载到浏览器中的其他站点进行通信。通过MessageChannels做到这一点相当简单。现在,这些应用程序必须访问...
javascript security web-applications es6-symbol
1个回答
0
投票
符号无法通过MessageChannel传输。在Firefox中测试过。
© www.soinside.com 2019 - 2024. All rights reserved.