2011-10-22 8 views

Odpowiedz

21

To po prostu instruuje PHP, aby obsługiwał pliki kończące się na .php, przekazując je do interpretera PHP5. Bez tej konfiguracji serwer sieciowy może serwować pliki do przeglądarki użytkownika końcowego jako surowy kod PHP, zamiast wykonywania kodu. Stwarza to niebezpieczną możliwość ujawnienia danych logowania do bazy danych lub innych tajemnic.

Korzystając z tego samego mechanizmu, można skonfigurować serwer WWW do analizy plików z innymi rozszerzeniami oprócz .php jako skryptów PHP i przekazać je do interpretera PHP. Od czasu do czasu robi się to, aby zamaskować skrypty PHP, na przykład nazywając je rozszerzeniami .html.

# Interpret both .php & .html as PHP: 
AddHandler php5-script .php .html 
+0

4 lata później i zastanawiam się, czy jest to konieczne, nawet jeśli mam tę regułę w mojej konfiguracji apache? –

1

Mówi php do obsługi dowolny plik z .php w nazwie pliku, nawet jeśli nie jest to w końcu. Plik o nazwie smile.php.gif zostanie zinterpretowany jako plik php, co jest złe, jeśli zamierzasz używać skryptu przesyłania. To dlatego, że Apache dopuszcza wiele rozszerzeń w dowolnej kolejności, więc gif.php.jpg jest taki sam jak gif.jpg.php. Słyszałem, że najlepszym sposobem wyboru programu obsługi jest funkcja FilesMatch. Oczywiście, jeśli twój host sieciowy ma to w swoim httpd.conf, będziesz musiał "usunąć" go używając htaccess przed użyciem funkcji FilesMatch, jeśli nie masz dostępu do httpd.conf.

+0

Jest podatny na przesłanie plików, tzn .: file.php.png, możemy ominąć i zaatakować stronę internetową, przesyłając plik o nazwie shell.php.png –