Flex 4.5 - 独特的计算机信息

问题描述:

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

所以问题是如何获得一些独特的计算机信息?像HDD序列号,CPU规格,主板信息,甚至登录到操作系统的用户都可以做到。

到目前为止,网络上的信息并没有给我太多的希望,这可以实现,但我不得不问。 在此先感谢。

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

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

您也可以在不使用浏览器的情况下使用AIR应用程序中的NativeProcess。

第三种选择是安装在客户端计算机上的应用程序服务器,并有基于浏览器的应用程序与服务器以获取客户端的信息交流。

我认为大多数这些选项太难以实用了,但这取决于这个特性对您的重要程度。

+0

我已经在考虑使用Java桌面应用程序来实现我的目标。我从来没有想到我可以使用AIR应用程序,并感谢您的建议,因为使用AIR应用程序会提升用户体验(UI一致性)。当我问我的问题时,我也希望有一个更简单的解决方案,因为下载和安装不必要的桌面应用程序是非常烦人的任务。谢谢你有一个愉快的一天。 –

的Flash Player的安全沙箱不会让你读什么关于该SWF在运行系统中唯一的,所以这恐怕是不可能的。你会得到最接近的可能Capabilities.serverString有可能IP地址一起,但serverString财产只是列出了所有的能力的客户端,这显然不是一个独特的东西,而且还可能随时发生变化,时间在同一台计算机的

我想可供Web应用程序的唯一的选择是从flash.system.Capabilities class领域创造出独特的ID。

可以使用的其他策略是to generate unique UID在计算机的授权过程中,然后使用SharedObject将其存储在本地存储中。然后,Web应用尝试在Web应用启动时从SharedObject读取授权数据。如果没有这样的数据计算机未被授权。

+0

+1我说这个。 –

+0

嗯,也许有一些我不明白,但我怎样才能使生成的UID独特的每台机器?我的意思是,我试图达到一定程度的安全性,只需将sharedobject文件复制到另一台机器即可避开。 –

+0

不,这个建议无法防止将共享对象简单地复制到其他计算机。所以它无法防止黑客入侵。但是大多数最终用户对共享对象的本地存储一无所知。 – Constantiner

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

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

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

的替代解决方案将是,以检查在服务器的原始数据包,以便获得如IP和MAC地址的数据。基于此,服务器可以拒绝或允许登录尝试。

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