1

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

4

1 回答 1

3

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

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

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

于 2012-03-27T14:26:50.293 回答