【问题标题】:Can hardware information by obtained on a device that interacts with a Java servlet?可以通过与 Java servlet 交互的设备上获取硬件信息吗?
【发布时间】:2012-03-27 14:21:44
【问题描述】:

是一种收集硬件信息以唯一标识向 Java servlet 发出请求的特定设备(不是类别)的方法吗?我搜索了这个,但我认为没有方法(“用户代理”标头可用于某些信息,但仅标识一组设备,这还不够)。

【问题讨论】:

  • 您能解释一下您要查找的信息类型吗?真的,我很确定您受到用户代理的限制。如果只是出于安全原因,我认为您无法确定更多信息。
  • 我需要一种方法来唯一标识向 servlet 发出请求的设备。比如我想知道它的mac地址。即使使用 Java Applet,我也不知道是否可以找到该信息(因为需要权限)

标签: java servlets hardware-id system-identification


【解决方案1】:

此信息在 HTTP 请求中的任何地方都不可用。远程地址(客户端 IP)和用户代理(浏览器伪装的字符串)是您可以根据 HTTP 请求提取的最接近的唯一标识符。即便如此,这些信息也不可靠。例如,客户端可以使用匿名代理。例如,客户端可以更改浏览器的用户代理字符串。

你基本上需要在客户端收集这些信息,然后自己作为请求参数发送到服务器端。然而,您在收集此信息的可用方式方面又受到限制。例如,出于安全原因,JavaScript 不允许这样做。您最接近的赌注是签名(!)Java AppletWeb Start 应用程序。这允许您让客户端下载一些 Java 代码并在本地执行它。但这也不总是可靠的。例如,客户端可以破解 applet/webstart 代码和/或篡改 applet 和服务器之间的 HTTP 流量。

另一种方法是引入一个注册/授权/身份验证系统,其中客户端需要通过有效登录自己提供唯一标识符。这不仅更简单,而且更健壮。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-27
    • 2011-10-06
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多