如何在Perl和FCGI中设置POST_MAX限制

时间:2014-04-25 08:57:06

标签: perl cgi fastcgi

我正在寻找如何在Perl& amp;中设置POST_MAX FCGI。我正在使用perl模块CGI :: Fast。

我发现的大多数例子都是CGI,我不认为它的工作原理相同:

use strict;
use CGI;
use Fcntl qw( :DEFAULT :flock );

use constant UPLOAD_DIR     => "/usr/local/apache/data/uploads";
use constant BUFFER_SIZE    => 16_384;
use constant MAX_FILE_SIZE  => 1_048_576;       # Limit each upload to 1 MB
use constant MAX_DIR_SIZE   => 100 * 1_048_576; # Limit total uploads to 100 MB
use constant MAX_OPEN_TRIES => 100;

$CGI::DISABLE_UPLOADS   = 0;
$CGI::POST_MAX          = MAX_FILE_SIZE;

my $q = new CGI; 

提前致谢

1 个答案:

答案 0 :(得分:2)

CGI::Fast是由CGI.pm创建的CGI对象的子类。

因此,您可以使用CGI中的功能,即Avoiding DOS Attacks

  

$CGI::POST_MAX

     

如果设置为非负整数,则此变量会对POSTings的大小设置上限(以字节为单位)。如果CGI.pm检测到一个大于天花板的POST,它将立即退出并显示错误消息。此值将影响普通POST和多部分POST,这意味着它也会限制文件上载的最大大小。您应该将其设置为相当高的值,例如1兆字节。

     

$CGI::DISABLE_UPLOADS

     

如果设置为非零值,则会完全禁用文件上载。其他填写表单值将照常工作。