blokada dostępu do folderu

blokada dostępu do folderu
  • Rejestracja: dni
  • Ostatnio: dni
0

hejo

nie wiem jak to ładnie opisać więc podam przykład ;]

struktura

folder_glowny
- podfolder1
- skrypt.php
- podfolder2
- test.php

plik test.php:

Kopiuj
 
<?php
require("../podfolder1/skrypt.php");
?>

zawartość pliku została podana przykładowo, tylko w celach ukazania problemu

pytanie:
czy i jak można zrobić by to co jest w podfolder2 nie miało dostępu do innych podfolderów?

do podfolderów są ustawiane subdomeny, więc z poziomu adresu www nie da się przejść do niewłaściwego folderu, ale z poziomu skryptu już się da

da się coś z tym zrobić?

Loganek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 268
0

musisz ustawić odpowiednie chmody (http://pl.wikipedia.org/wiki/Chmod) o ile to unix oczywiście

RE
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie jest to prosta rzecz. PHP jest uruchamiane z użytkownika serwera, ma więc takie same prawa jak serwer. Jeżeli zabronisz temu użytkownikowi dostępu do katalogu drugiego vhosta, PHP nie będzie miało tam dostępu i sam serwer też nie. Czyli w ogóle nie będzie to działać.

Rozwiązań jest kilka, ale generalnie wszystkie z nich sprowadzają się do tego, że musisz uruchamiać proces interpretatora PHP na prawach użytkownika, który ma dostęp do jednego vhosta, a do drugiego nie. Kilka rozwiązań tego problemu (wszystkie z nich zakładają, że każdy vhost ma swojego użytkownika w systemie):

  • uruchomienie tyle razy Apache ile jest vhostów na różnych portach i użycie jeszcze jednego Apache uruchomionego na porcie 80 jako proxy, które rozdzielać będzie zapytania do konkretnych instancji serwera
  • istnieje (nie do końca sprawny chyba) moduł do Apache, który potrafi uruchamiać procesy Apache na prawach danych użytkowników - daje się je prosto przypisać do vhostów - to taka prostsza wersja powyższego (http://httpd.apache.org/docs/2.0/mod/perchild.html)
  • istnieje moduł do Apache, który robi za transparentną warstwę pomiędzy Apache i PHP; sprawdza najpierw jaki użytkownik ma prawo do danego skryptu i uruchamia interpreter z prawami tego użytkownika (http://www.suphp.org/)
  • pewnie istnieją jeszcze jakieś inne metody wykorzystujące selinux, chrootowanie itd.

Sam nigdy nie bawiłem się w żadne z powyższych, ale.. chcesz to próbuj ;).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.