识别机器/用户 ID Perl



有一个网站禁止了我的一个客户。如果他使用计算机"A"在此站点注册帐户,他的帐户将立即被取消。如果他注册了计算机"B"的帐户,则没有问题。(该网站无法识别他( 我希望能够在我的网站上做到这一点。(即:通过计算机识别用户(我可以识别环境变量,但这似乎不是这个网站正在使用的。 我什至不确定如何标记这个问题。任何帮助,不胜感激。

#!/usr/local/bin/perl
print "Content-type: text/htmlnn";
print "<pre>n";
foreach my $key (sort keys(%ENV)) {
print "$key = $ENV{$key}<p>";
}
print "</pre>n";

我理解正确,您的客户端在同一网络内使用计算机 A 和 B,因此请求来自同一 IP,对吗?

在服务器端 - 这就是您正在做的事情 - 您只能通过其IP地址来识别用户。其他所有内容(cookie、用户代理信息、语言偏好等(都是在自愿的基础上发送的,不可靠。

在禁用 JavaScript 的情况下重复实验,远程端可能无法识别用户。使用 JavaScript,您可以收集有关用户硬件和软件的惊人信息:操作系统、安装的插件、安装的字体、屏幕分辨率、图形硬件的属性(通过绘制到画布并分析结果(、音频硬件的属性以及许多其他内容。请参阅 https://github.com/Valve/fingerprintjs2 以了解可能的印象。

然后,您可以将 AJAX 请求中的所有信息发送回服务器并对其做出反应。但这种方法本质上也是有限的:

  1. 用户可以禁用 JavaScript(尽管您可以通过在注册过程中要求 JavaScript 来避免这种情况(。
  2. 用户可以操纵发送的信息。
  3. 用户可以阻止 AJAX 调用
  4. 或此特定 AJAX 调用。

但实践表明,这种方法是相当成功的。

最新更新