有一个网站禁止我的客户。如果他使用计算机“ 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";
答案 0 :(得分:2)
我正确理解您的意思,即您的客户端使用的是同一网络中的计算机A和B,因此请求来自同一IP,对吗?
在服务器端-这就是您正在做的-您只能通过用户的IP地址来识别该用户。其他所有内容(Cookie,用户代理信息,语言首选项等)都是自愿发送的,并不可靠。
在禁用JavaScript的情况下重复实验,远程端可能无法识别用户。使用JavaScript,您可以收集有关用户硬件和软件的大量信息:操作系统,已安装的插件,已安装的字体,屏幕分辨率,图形硬件的属性(通过绘画到画布并分析结果),音频硬件以及许多其他东西。请参见https://github.com/Valve/fingerprintjs2,以了解可能的情况。
然后,您可以将AJAX请求中的所有信息发送回服务器,并对服务器做出反应。但是这种方法也固有地受到限制:
但是实践表明,这种方法非常成功。