Ero sempre sicuro che le funzioni PHP file_get_contents
e readfile
eseguissero qualsiasi codice PHP in qualsiasi file, indipendentemente dal tipo di file, che gli viene fornito. Ho provato questo su più configurazioni, e ha sempre funzionato.Do file_get_contents e readfile eseguono il codice PHP?
Ho ricevuto una domanda su questo here e l'utente sembra pensare che questo non sia il caso.
Ho esaminato la documentazione PHP per le funzioni, e non menzionano l'esecuzione del codice (che è qualcosa che mi aspetterei se questo è normalmente il caso, in quanto ha gravi implicazioni per la sicurezza).
Ho anche cercato per esso, e ho trovato molte affermazioni che le funzioni non eseguono il codice PHP. Ad esempio:
readfile non esegue il codice sul server in modo che non ci siano problemi. source
Ricerca di "file_get_contents php l'esecuzione di codice" restituisce anche diverse questioni che cercano di eseguire il codice PHP recuperate, che sembra strano se sarebbe davvero normalmente eseguire qualsiasi dato codice PHP.
Ho trovato anche one question che chiede informazioni sull'esecuzione del codice PHP, quindi l'esecuzione sembra avvenire anche ad altri.
Quindi le mie domande sono:
- fanno le funzioni
file_get_contents
ereadfile
eseguire codice PHP in file recuperati? - dipende da alcune impostazioni di php.ini? Se sì, quali impostazioni?
- dipende dalla versione di PHP e, in caso affermativo, quali versioni sono interessate?
- se non è normalmente il caso, quali possono essere le ragioni per cui eseguono il codice PHP nelle mie configurazioni?
Sembra più una questione di programmazione che di sicurezza. Hai controllato il manuale di php.net? Sembra che non ci sia alcuna esecuzione per me ... –
Mi piacerebbe molto vedere un esempio di codice in cui "funziona" ... – deceze