beatovich: Parametername gleich Name der Methode

Beitrag lesen

problematische Seite

hallo

Hi,

1.			my $pm = 'apps/'.$POST->{modul}.'/'.$POST->{modul}.'.pm';
			if( -e $pm && -r _ && -f _ ){
2.				my $modulrun = require $pm;
3.				$actionresult = $modulrun->();
1. Der Name des Moduls wird durch einen Parameter bestimmt
2. Code wird kompiliert und liefert eine Codereferenz
3. der referenzierte Code wird ausgeführt.

Zu 1. wäre also noch zu sagen daß das jeder Benutzer der Anwendung tun kann. Er könnte z.B. auch eine Modul laden was dem Administrator vorbehalten ist. Bei 3. wird der Code unmittelbar ausgeführt.

Ah und du würdest also in einer Config festlegen, welche Funktionen wann verfügbar sind? Warum diese Aufgabe nicht dem Modul selbst anvertrauen?

Es ist Deine Entscheidung, diese Hinweise zu ignorieren: Die Anwendung hat eine erhebliche Sicherheitslücke!

Sie hat keine Lücke die nicht auch durch eine Config bestünde. Im Gegenteil ist es in einer Config sehr viel einfacher eine Lücke aufzureissen, als dies geschieht, wenn man einem Modul die ihm eigene Rechteprüfung anvertraut.