Как да зададете в Perl и FCGI ограничението POST_MAX

Търся как да задам POST_MAX в Perl & 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; 

Благодаря предварително


person Manolis Di' Angelo    schedule 25.04.2014    source източник


Отговори (1)


CGI::Fast е подклас на CGI обекта, създаден от CGI.pm.

Следователно можете да използвате функциите в CGI, а именно Avoiding DOS Attacks:

$CGI::POST_MAX

Ако е зададено на неотрицателно цяло число, тази променлива поставя таван на размера на POSTings в байтове. Ако CGI.pm открие POST, който е по-голям от тавана, той веднага ще излезе със съобщение за грешка. Тази стойност ще засегне както обикновените POST, така и многочастните POST, което означава, че ограничава и максималния размер на качените файлове. Трябва да зададете това на разумно висока стойност, като например 1 мегабайт.

$CGI::DISABLE_UPLOADS

Ако е зададена ненулева стойност, това ще деактивира напълно качването на файлове. Останалите стойности на формуляра за попълване ще работят както обикновено.

person Miller    schedule 25.04.2014