如果我创建一个ASP.net页面,我能够获得当前用户的CPUID和BIOS序列号吗?或者因安全性而不允许这样做?
我目前有一个获取这些值的Visual Basic.net应用程序,我只是想知道我是否可以在网页上做同样的事情。
答案 0 :(得分:2)
在坚果壳中,你不能只使用普通的html& JavaScript网页。
但是,并不是说它不可能。
如果您的客户端计算机安装了Java,Flash或Silver-light,那么就不可能让其中一个插件架构以某种方式查询客户端PC并收集这些数据。我碰巧确实知道它可以从Java Applet中获得,因为很多像Nvidia和AMD这样的公司在给你选择下载的驱动程序时会用它来获取硬件信息。
虽然这些人可能不会在寻找bios序列号等等,但他们使用与阅读所需信息所需的相同方法和方法正是他们所做的本质。
就我个人而言,我也使用银光灯,但是在一个受控制的环境中我对客户端计算机上运行的内容有发言权。
现在,超越原始问题,大多数人都会提出这种性质的问题,因为他们正在寻找一种方法来识别网站访问者,而无需保存cookie或类似信息。
我之前已经在我编写的代码大师的.NET Nuts and bolt专栏中的帖子中列出了一些方法(Link Here),而且当前最常见的一种方法是指纹打印技术
基本上,指纹打印技术的工作原理是将大多数现代浏览器现在提供给Web服务器的所有标准数据组合起来,然后使用这些数据形成某种散列令牌或唯一标识符。
但是,如果您要使用此方法,则需要确保您不会选择可能过于频繁更改的数据。用户代理,屏幕分辨率,操作系统版本,Java版本等类似的东西通常是不错的选择。您也可以使用IP地址,但我要小心,因为这些天大多数消费者处于动态状态,因此可能会意外地发生变化。
如果您去指纹的话就应该避免,例如当前的日期和时间。时间,浏览器名称是否存在特定标题(当然除非它是您提供的标题),任何可以为您提供答案的内容可以与许多其他系统广泛匹配或者频繁更改是一个糟糕的选择。
您还可以在客户端使用JavaScript,在客户端本身上使用本地信息创建哈希,然后使用ajax调用或隐藏形式或url参数将哈希值发送给您。 / p>
答案 1 :(得分:1)
如果您在网页上执行此操作,您将获得服务器的BIOS序列号。因为VB.NET函数在服务器上运行。
您无法从简单的HTML / JS / CSS网页访问此数据。对不起,这是安全的事情。访问某些网页时,您不希望任何人知道您的硬件规格。