0

我正在开发一个基于 flex 4.5 Web 的应用程序,我需要确保客户端是否选择了一定的安全级别,每个用户只能从授权计算机登录。

所以问题是我怎样才能得到一些独特的计算机信息?诸如硬盘序列号、CPU 规格、主板信息之类的任何事情,甚至登录到操作系统的用户都可以做到。

到目前为止,网络上的信息并没有给我太多希望,但我不得不问。提前致谢。

4

5 回答 5

2

我想 Web 应用程序可用的唯一选项是从flash.system.Capabilitiesclass字段创建唯一 id 。

可以使用的其他策略是在计算机授权过程中生成唯一的 UID,然后使用SharedObject. 然后 Web 应用程序尝试从SharedObjectWeb 应用程序启动时读取授权数据。如果没有这样的数据计算机是没有授权的。

于 2011-08-29T19:28:09.583 回答
2

理查德是对的。为安全起见,通过 Flash Player 运行的应用程序没有唯一的识别信息。如果用户(及其 IT 管理员)允许,您可以编写 Active X 控件(用于 IE)或插件(用于基于 Mozilla 的浏览器)来获取应用程序的附加信息。可用信息会因用户运行的浏览器和操作系统而异。

另一方面,Adobe Air 允许访问其他网络信息,包括 NetworkInfo 类中的 MAC 地址。也许值得考虑为需要额外安全性的用户安装客户端应用程序。看看: http: //www.adobe.com/devnet/air/flex/articles/retrieving_network_interfaces.html

于 2011-08-29T19:30:46.927 回答
1

Flash Player 安全沙箱不会让您读取任何有关运行 SWF 的系统的独特信息,因此恐怕这是不可能的。您将获得的最接近的可能是Capabilities.serverStringIP 地址,但该serverString属性仅列出了客户端的所有功能,这显然不是一个独特的东西,并且对于同一台计算机也可能会不时更改。

于 2011-08-29T19:14:29.570 回答
1

使用基于浏览器的 Flex 应用程序并不容易,但有一些变通方法。

基于浏览器的 Flash Player 可以使用本地连接与桌面上的 AIR 应用程序进行通信。因此,您可以创建一个 AIR 应用程序,该应用程序利用 NativeProcess 来检索您的机器特定信息。

您也可以从 AIR 应用程序中使用 NativeProcess,而无需使用浏览器。

第三种选择是在客户端机器上安装应用服务器,并让基于浏览器的应用程序与服务器通信以检索客户端信息。

我认为这些选项中的大多数都很难实用,但这取决于此功能对您的重要性。

于 2011-08-29T19:29:40.380 回答
0

警告:我对服务器端脚本的了解至少可以说是有限的。这不是技术解决方案,而是解决问题的不同方法。

另一种解决方案是在服务器上检查原始数据包,以获得 IP 和 MAC 地址等数据。基于此,服务器可以拒绝或允许登录尝试。

我习惯于在基于 C 的黑魔法相当普遍的微控制器上运行嵌入式 Web 服务器,所以我不确定这在更传统的环境中是否可行或实用。

于 2011-08-30T10:51:49.597 回答