Prüfung der Verzeichnisberechtigungen

Informationen rund um die Sicherheit des Webs - Shops

Prüfung der Verzeichnisberechtigungen

Beitragvon janbyte » Di 4. Feb 2014, 15:12

Hallo,

ich teste gerade die Version 1.0.16 auf einem CentOS Server und mir wird im Backend angezeigt, dass die Schreibberechtigungen der nonWriteableDirs nicht passwn würden.

Auf der Kommandozeile wird mir aber 755 für die Verzeichnisse angezeigt.

Könnte es sein, dass die Meldung im Pfad /lang/german/admin in der Datei start.php falsch hinterlegt ist und die Berechtigung 555 anstatt 755 sein sollte.

Original:
define('TEXT_FOLDER_WARNING_IS_WRITEABLE','<b>WARNUNG:</b><br />Folgende Verzeichnisse sind vom Server beschreibbar. Bitte &auml;ndern Sie die Zugriffsrechte (Permissions) dieser Verzeichnisse aus Sicherheitsgr&uuml;nden. <b>(755)</b> bei Unix, <b>(read-only)</b> bei Windows.');

Neu:
define('TEXT_FOLDER_WARNING_IS_WRITEABLE','<b>WARNUNG:</b><br />Folgende Verzeichnisse sind vom Server beschreibbar. Bitte &auml;ndern Sie die Zugriffsrechte (Permissions) dieser Verzeichnisse aus Sicherheitsgr&uuml;nden. <b>(555)</b> bei Unix, <b>(read-only)</b> bei Windows.');

Danke

Jan
janbyte
 
Beiträge: 2
Registriert: Do 7. Apr 2011, 16:07

Re: Prüfung der Verzeichnisberechtigungen

Beitragvon Xantiva » Di 4. Feb 2014, 19:43

Bei einigen System ist auch 750 in Ordnung hast Du das mal probiert?
Mein Shop: http://www.basteln-selbermachen.de
Xantiva
 
Beiträge: 948
Registriert: Mo 10. Mai 2010, 18:26

Re: Prüfung der Verzeichnisberechtigungen

Beitragvon janbyte » Di 4. Feb 2014, 19:58

Xantiva hat geschrieben:Bei einigen System ist auch 750 in Ordnung hast Du das mal probiert?


Wenn ich 750 auf das Admin Verzeichnis setze geht gar nichts mehr im Backend.

Ich habe mal ein wenig getest und bin auf folgende Lösung gekommen.
Erweiterung der Datei security_check.php im Verzeichnis /admin/includes/modules
um eine zusätzliche Funktion (Variante von checkWriteable) , die Berechtigungsflags des Owners bleiben ungetastet.

function checkWriteableOnlyOwner($file) {
static $uid=NULL, $groups=NULL;

$result = false;

$fperm = fileperms($file);
if (function_exists('posix_getuid')) {
if ($uid === NULL) {
$uid = posix_getuid();
$groups = posix_getgroups();
}

if (($fperm & 0002) or
($fperm & 0020 and in_array(filegroup($file), $groups)) or
(fileowner($file) == $uid)) {
$result = true;
}

} else {
$result = (($fperm & 0022) !=0);
}
return $result;
}

------------

Zusätzlich habe ich in der Datei die Zeile 108 auf die neue Funktion angepaßt:
108 Original: if (checkWriteable($dir)) {

108 Neu: if (checkWriteableOnlyOwner($dir)) {

Grüsse

Jan
janbyte
 
Beiträge: 2
Registriert: Do 7. Apr 2011, 16:07



Ähnliche Beiträge


Zurück zu Sicherheit

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron