这是一个奇怪的。 :)Perl CGI从不同的请求获取参数到当前的URL
我有一个脚本运行在Apache 1.3下,mod_perl的Apache :: PerlRun选项。它使用标准的CGI.pm模块。这是一个在繁忙的服务器上经常访问的脚本,通过https访问。
的URL通常是类似...
/script.pl?action=edit & ID = 47049
然后被带入Perl的通常方式...
my $action = $cgi->param("action");
my $id = $cgi->param("id");
这已成功运行了几年。然而,本周我们开始从正在访问此脚本并获取空白页的客户那里获得支持请求。我们已经有一个这样把当前的URL到我们使用的客户报告有关网页的问题形式如下行...
$cgi->url(-query => 1);
当我们查看页面的源,那结果命令是相同的URL,但具有完全不同的查询字符串。
/script.pl?action=login & USER = foo的&密码=栏
,我们承认我们的系统上的其他地方完全不同的脚本是一个查询字符串。
但是听起来很疯狂,似乎当用户访问带有查询字符串的URL时,该脚本正在查看的查询字符串是来自另一个脚本上先前请求的查询字符串。当然,脚本无法处理该操作并且不输出任何内容。
我们运行了一些自动化测试脚本来查看发生这种情况的频率,并非每次。在Apache重启之后,为了给混音带来一些额外的混乱,这个问题似乎最初只会在以后才会消失。所以不管是什么原因导致它重启都能以某种方式缓解,但我们不能看到Apache如何能够接受来自一个用户的请求并将其与另一个用户混合。