识别机器/用户ID Perl

时间:2018-10-17 22:21:15

标签: perl server system admin

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

#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<pre>\n";

foreach my $key (sort keys(%ENV)) {
print "$key = $ENV{$key}<p>";
}
print "</pre>\n";

1 个答案:

答案 0 :(得分:2)

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

在服务器端-这就是您正在做的-您只能通过用户的IP地址来识别该用户。其他所有内容(Cookie,用户代理信息,语言首选项等)都是自愿发送的,并不可靠。

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

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

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

但是实践表明,这种方法非常成功。