我们有一个在第三方网站上运行的“小部件”,即任何注册我们的服务并嵌入 JavaScript 的人。
目前我们使用 JSONP 进行所有通信。我们可以通过使用 iFrame 和一些检测其上的加载事件的魔法来安全地登录并创建帐户。(本质上,我们等到 iFrames 源指向客户端域,然后再从它的标题中读取成功值)。
因为我们在 JSONP 上运行,所以我们可以使用浏览器的 HTTP cookie 来检测用户是否登录。
但是,我们正在将我们的系统转换为实时运行并通过 Web 套接字运行。我们仍将使用相同的身份验证方法,但我们不一定会使用 JSONP 进行其他调用。相反,这些调用将通过 websockets 发生(使用库 Faye)
我怎样才能确保这一点?潜在的安全漏洞是,如果有人从现有站点复制 JavaScript,对其进行更改,然后让人们访问他们的站点。我认为这违背了我最初在登录时发回安全令牌的想法,因为恶意 JavaScript 能够读取它然后使用它执行经过身份验证的操作。
我是否最好让我的安全操作通过常规 JSONP 运行并通过 WebSockets 进行更新?