Jak mogę sprawdzić file permissions
, bez konieczności uruchamiania specjalnego polecenia systemu operacyjnego przez passthru()
lub exec()
?Sprawdź uprawnienia do plików
Odpowiedz
Zastosowanie fileperms() funkcja
clearstatcache();
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
Co chcesz zrobić, sprawdzając uprawnienia do plików?
Podczas pisania kodu bezpieczeństwa prawie zawsze jest niepoprawne wpisywanie "sprawdź, a następnie wykonaj". Powodem jest to, że między sprawdzaniem, czy można coś zrobić, a faktycznie to zrobić, stan systemu może zmienić się tak, że robienie tego będzie miało inny skutek.
Na przykład, jeśli sprawdzisz, czy plik istnieje przed jego zapisaniem, nie sprawdzaj, czy plik został pomyślnie napisany (lub nie sprawdzasz wystarczająco szczegółowo), a później zależy od zawartości plik, który napisałeś, mógłbyś czytać plik napisany przez atakującego.
Zamiast więc sprawdzać uprawnienia do plików, po prostu rób to, co zamierzałeś zrobić, jeśli sprawdzenie uprawnień powiedzie się i zręcznie obsługiwać błędy.
Można użyć poleceń is_readable(), is_executable() itd ..
Należy pamiętać, że is_writable() nie sprawdza przypisania do grupy (od PHP 5.5.18). – cgeisel
Zastosowanie fileperms() funkcja i podciąg:
substr(decoct(fileperms(__DIR__)), -4); // 0777
substr(decoct(fileperms(__DIR__)), -3); // 777
dla pliku:
substr(decoct(fileperms(__FILE__)), -4); // 0644
substr(decoct(fileperms(__FILE__)), -3); // 644
Wymień __FILE__
i __DIR__
ze swojej ścieżki lub zmiennym
Prawdziwi programiści użyć bitowe operacje, a nie ciągi;) To jest o wiele bardziej elegancki sposób uprawnień do obsługi:
function checkPerms($path)
{
clearstatcache(null, $path);
return decoct(fileperms($path) & 0777);
}
Co to zwraca, prawda/fałsz? – Sam
- 1. Uprawnienia do plików synchronizacji * tylko *
- 2. C# Uprawnienia do plików/katalogów
- 3. Sprawdź uprawnienia Android w metodzie
- 4. Uprawnienia do plików Java dla wątków
- 5. Wdrażanie rsync i uprawnienia do plików/katalogów
- 6. Ustaw uprawnienia do plików w C#
- 7. silverstripe - uprawnienia do plików dla folderu folderu
- 8. Jak zapewnić poprawne uprawnienia do plików
- 9. Uprawnienia do plików nie dziedziczą uprawnień do katalogów.
- 10. Jak zmienić uprawnienia plików w Ubuntu
- 11. jscape sftp przesyłanie plików zachowując uprawnienia
- 12. Jak zachować uprawnienia do plików podczas korzystania z FileUtils.copyDirectory?
- 13. Czy można wprowadzić Mercurial, aby zachować uprawnienia do plików?
- 14. uprawnienia do plików mkfifo nie są wykonywane prawidłowo
- 15. Jak zmienić uprawnienia dostępu do plików w systemie Linux?
- 16. Jak zachować uprawnienia do wykonywania plików w archetypie maven archetyp
- 17. Zdalne uprawnienia do plików Netbeans. chmod z poziomu Netbeans?
- 18. Zachowaj uprawnienia do plików z zasobami Maven: testResources
- 19. Ustawianie domyślnego uprawnienia do przesyłania plików w Filezilla
- 20. Uprawnienia do plików w systemie Linux/Unix z .NET Core
- 21. Jak zmienić uprawnienia do plików dla wszystkich podkatalogów (CHMOD)
- 22. Uprawnienia do plików systemu Linux dla urządzenia USB na Androida
- 23. Uprawnienia do folderu udostępnionego!
- 24. Uprawnienia do obcinania tabeli
- 25. Uprawnienia Role i uprawnienia
- 26. Jak skonfigurować uprawnienia do aplikacji Rails?
- 27. Uprawnienia do folderów na stronach Azure
- 28. Linux: Ustaw tylko uprawnienia do katalogów
- 29. Kopiowanie uprawnień do plików, ale nie plików
- 30. Python - uprawnienia do katalogu testowego
Nie zawsze są wykonalne powody sprawdzanie uprawnień, może on budowę demona o uprawnieniach mocowania, który nie robi” • polegać na swoim skrypcie, aby czytać lub zapisywać pliki, ponieważ inny proces to zrobi. –
Kolejnym przykładem jest program do przeprogramowaniaMap, który działa jako brama na podstawie określonych uprawnień do plików. – puk