2

我正在开发一个基于 GWT 的客户端服务器 Web 应用程序。

该应用程序在 IIS 上安装一个网站。当客户端第一次浏览网站时,他们需要运行本地安装,它会在客户端计算机上安装一个本地进程和一个 NPAPI 插件。

客户端运行在IE、Chrome、Firefox等浏览器中,使用NPAPI插件向本地进程发送消息。本地进程用于访问文件系统、注册表等。

为了防止其他网站使用 NPAPI 插件,当用户第一次登录时,服务器会向他发送一个包含站点 URL + 一些其他数据的字符串的哈希值。NPAPI 插件可以访问浏览器的当前 URL,还可以创建相同的哈希值并比较两者。

由于 Chrome 即将结束对 NPAPI 插件的支持,我正在尝试用 Chrome 扩展程序和本机消息传递主机替换该插件。扩展不能限制在某个域,因为它可以从许多域中使用。

我试图找出一种方法来阻止其他网站使用扩展程序向本机主机发送消息,但找不到方法。有谁知道我怎么能做到这一点?

任何建议将不胜感激,谢谢。

4

1 回答 1

0

您是否考虑过将扩展限制为特定域,然后让其他域 iframe 该域并通过 进行通信postMessage?您可以在 iframe 的 JS 中有一个域白名单,并根据该列表验证消息来源。

于 2014-04-12T02:13:55.817 回答