Wolałbym jednak wyłaczyc obsługę php z poziomu katalogu głownego i tam po prostu wskazać katalogi w których chce wyłaczyc php. Katalogów będzie kilka, jest to katalog z uploadowanymi plikami, katalog ze zdjęciami, katalog z szablonami emaili, katalog z templatami. Osoby postronne moga mieć dostęp do tych katalogów i wgrywać dowolne pliki, wiec musze wtyłączyc możliwośc urucamiania jakichkolwiek skryptów.
Znalazłem kilka sposobów, właściwie to ze 100 podpowiedzi :/
Jeden to wskazywanie konkretnych rozszerzeń, ale ktoś sobie utworzy plik htaccess w danym katalogu i doda kolejne rozszerzenie do obsługi przez php. I ominie to zabezpieczenie.
NP:
<Directory "^public_html/templates/template1">
<Files "^(*.php|*.phps)">
order deny,allow
deny from all
</Files>
</Directory>
Dodatkowo zastanawiam się, czy użytkownik nie bedzie mógł uruchomić aplikacji np w asp, cgi, pear ?
<Directory "public_html/templates/template1">
Options -ExecCGI
AllowOverride None
RemoveHandler .cgi .pl .py .php4 .pcgi4 .php .php3 .phtml .pcgi .php5 .pcgi5
RemoveType .cgi .pl .py .php4 .pcgi4 .php .php3 .phtml .pcgi .php5 .pcgi5
</Directory>
Może takie rozwiązanie będzie lepsze?
<Directory "public_html/templates/template1">
php_value engine off
# other options
</Directory>
Znalazłem też takie coś, wygląda jak by to było rozwiązanie kompleksowe, prosze, żeby ktoś rzucił okiem. Mam małe doświadczenie w tym a boje sie, że narobie bigosu na serwerze.
Disable all CGI (php, perl, …) for a directory using .htaccess