Wyobraź sobie zabawną aplikację PHP podatną na bezwzględne lokalne włączanie plików, np.Dlaczego funkcja include ('php: // input') nie działa?
<?php include($_GET['action']);
Próbowałem następującą prośbę, aby ją wykorzystać:
POST /?action=php://input HTTP/1.1
Host: XXXXXXXXXXXXXXXXX
Content-Length: 3
foo
To skutecznie realizuje include('php://input');
z życzeniem ciała foo
, więc byłoby oczekiwać, że drukowanie foo
. Jednak pojawia się następujący komunikat o błędzie:
Na czym polega problem? Czy to jest funkcja zabezpieczeń PHP? Jeśli tak, to czy ktoś może wskazać odpowiedzialną część kodu źródłowego PHP, która to łagodzi?
Co o niestandardowych strumienie? Używając 'stream_wrapper_register' i całego tego jazzu? – Halcyon
Sprawdź wartość tej opcji w swojej konfiguracji http://php.net/manual/en/filesystem.configuration.php#ini.allow-url-include – Gustek
@Halcyon Słucham. Nie ma możliwości, by znalazłem to wykorzystywać na nowoczesnych ustawieniach LAMPU, chyba że masz prymitywny zapis pliku (taki jak 'session_start()' lub rejestrowanie specyficzne dla aplikacji itp.) –