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.

check folder permissions - security_check.php

Beitragvon DokuMan » Di 3. Jan 2012, 15:37

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
DokuMan
 
Beiträge: 8
Registriert: Sa 3. Jul 2010, 21:16

Re: check folder permissions - security_check.php

Beitragvon yogi » Sa 7. Jan 2012, 16:30

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?
yogi
Administrator
 
Beiträge: 289
Registriert: Do 6. Mai 2010, 16:16
Wohnort: Köln

Re: check folder permissions - security_check.php

Beitragvon ulli81 » Sa 7. Jan 2012, 23:51

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
ulli81
 
Beiträge: 108
Registriert: Di 20. Jul 2010, 00:32

Re: check folder permissions - security_check.php

Beitragvon yogi » So 8. Jan 2012, 09:14

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.
yogi
Administrator
 
Beiträge: 289
Registriert: Do 6. Mai 2010, 16:16
Wohnort: Köln



Ähnliche Beiträge


Zurück zu Best Practices

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron