check folder permissions - security_check.php

Viele Wege führen zum Ziel, doch nicht Jeder ist optimal. Hier werden die bestmöglichen Wege aufgeführt und erklärt.
Antworten
DokuMan
Beiträge: 8
Registriert: Sa 3. Jul 2010, 19:16
Shop Version: xtcModified

check folder permissions - security_check.php

Beitrag von DokuMan »

Hi,

in der security_check.php prüft ihr ja nur für unix-Umgebungen, ob die Schreibrechte für Ordner gesetzt sind.
Das Problem ist hier, dass "is_writable()" in Windows-Umgebungen nicht wirklich funktioniert.

Wenn ihr allerdings folgenden Code verwendet, funktioniert es auch unter Windows :)

Code: Alles auswählen

  // writeable dirs
  $check = array();
  foreach($writeableDirs as $dir) {
    if (!in_array(substr(decoct(fileperms($dir)), 2, 2), array('77', '75'))) {
      $check[] = $dir;
    }
  }
Bei ** check file permissions **
hat sich noch ein Fehler eingeschlichen:

Code: Alles auswählen

$checks[] = $file;
ich denke, das sollte nur $check (ohne "s") lauten
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: check folder permissions - security_check.php

Beitrag von yogi »

Hi,

nur die Flags der Dateien abzuprüfen ist auch nicht genug...

Funktionieren unter windows die posix Funktionen
- posix_getuid
- posix_getgroups

damit man eine vernünftige Prüfung implementieren kann?

die funktion "is_writeable" würde ich dann wie folgt implementieren:

Code: Alles auswählen

function checkWriteable($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
        ($fperm & 0200 and fileowner($file) == $uid)) {
      $result = true;
    }

  } else {
    $result = (($fperm & 0222) !=0);
  }
  return $result;
}
Könntest Du prüfen ob das auch unter Windows korrekt arbeitet?
ulli81
Beiträge: 108
Registriert: Mo 19. Jul 2010, 22:32
Shop Version: ECB 1.0.8

Re: check folder permissions - security_check.php

Beitrag von ulli81 »

hi,

posix geht unter win nicht.
Hinweis: Diese Erweiterung steht auf Windows-Betriebssystemen nicht zur Verfügung.
quelle: http://de.php.net/manual/de/intro.posix.php

gruß
ulli
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: check folder permissions - security_check.php

Beitrag von yogi »

Hallo Uli,

daher habe ich ja schon die Abfrage eingebaut ob die Funktion existiert. Die Frage ist nur ob die Funktion aus dem 2. Beitrag das leistet was sie soll.
Unter Unix (Linux) funktioniert es zumindest.
Antworten