Я хочу загрузить некоторые относительно конфиденциальные данные на сервер, которые не должны храниться на диске в виде открытого текста - мне кажется, слишком легко перехватить временный файл и скопировать содержимое, плюс возникнут проблемы безопасного удаленияфайл против восстановления / записей журнала и т. д. Я понимаю, что теоретически мог бы сделать это на стороне клиента, но предпочел бы решение на стороне сервера, чтобы необычный браузер не обрабатывал загрузку.
Perl CGI :: upload_hook () казалось идеальным решением с шифрованием по прибытии.Простой CGI устарел, но при использовании CGI :: Fast код ловушки никогда не достигается, независимо от того, помещаю я вызов внутри или вне цикла.
use Sys::Syslog;
use CGI::Fast;
sub hook {
my ( $filename, $buffer, $bytes_read, $data ) = @_;
syslog('notice',"Hook used!");
}
#CGI::upload_hook(\&hook,'',0); # No good here either
while (my $q = CGI::Fast->new()) {
CGI::upload_hook(\&hook,'data',0); # No effect
syslog('notice',"Got a request!");
# (Access control code cut)
print $q->header('text/plain','200 OK');
print (Dumper($q));
}
hook () никогда не вызывается.CGI :: Fast-> new () не принимает такой код хука, как CGI-> new ().