Thread FastCGI und Modul (Sicherheitsfrage) (4 answers)
Opened by Froschpopo at 2012-03-21 08:30

Froschpopo
 2012-03-21 08:30
#156957 #156957
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Beschäftige mich gerade mit Objekten in Zusammenhang mit FastCGI.
Hier ein Beispiel:

Code: (dl )
1
2
3
4
5
6
7
8
my $obj = Modul->new(@allgemein_gueltig);

while (my $cgi = new CGI::Fast) {

my $privat = $obj->setItem('bla');
$privat->mach_irgendetwas;

}


der in setItem() gesetzte Wert landet also nicht im $self-Hash von new(), sondern im Scope von setItem().

Meine Frage ist jetzt eher eine allgemeine Verständnisfrage zu Perl:

Wenn die while durchlaufen und $privat wieder erloschen ist, wird dann auch dessen Objekt aus dem Speicher entfernt? Ich möchte nämlich Zombieprozesse verhindern indem sich $obj irgendwann aufbläht!

Hier die Funktion:
Code: (dl )
1
2
3
4
5
6
7
8
9
sub setItem {
my $self = shift; # allgemeine_gueltige Daten importieren
my $arg = shift;

my $items = {};
$items->{content} = $arg;
bless($items);
return $items;
}


Wie man sieht werden $self keine Daten hinzugefügt.
Habe schon $self und $obj mit Data::Dumper untersucht, aber irgendwie noch die Sorge, dass irgendwo dieses "bla" festgehalten wird.

Es wäre ja außerdem ein Sicherheitsloch, wenn ein Request (= while-Durchlauf) irgendwelche Daten vom vorherigen Durchlauf vererbt bekommt.
Last edited: 2012-03-21 08:35:58 +0100 (CET)

View full thread FastCGI und Modul (Sicherheitsfrage)