Safari ha scaricato la mia fonte php una volta. Dovrei preoccuparmi?

3

Ho caricato via ftp, quindi ho digitato l'URL dello script in Safari; Safari ha scaricato la fonte !!

Questo sito di hosting ha mai fatto prima che - gli script .php siano sempre eseguiti.

Non posso duplicarlo. La pagina si carica come dovrebbe ora php.

Forse li ho appena catturati mentre alcune impostazioni .htaccess stavano cambiando?

Forse la mia linea di debug ini_set ('display_errors', 'stdout'); permesso questo?

Si è verificato un errore di "compilazione non riuscita" nella pagina.

Quindi ora devo cambiare i miei modi sciatti e scrivere codice php come se fosse esposto alla vista.

Che cosa potrebbe aver causato questa anomalia?

OK, quello che è successo è che recentemente ho cambiato il file .htaccess per usare una versione più recente di php. Belle. Ma avevo anche scaricato il file .htaccess sul mio server locale. L'indirizzo web per il locale è simile al sito. Quindi ... senza dita, non ho notato che Safari ha compilato automaticamente l'indirizzo con il mio sito locale. Il sito locale stava cercando di eseguire lo script con la nuova versione di php che non aveva, quindi ha appena consegnato lo script come download. Non è la cosa migliore da fare, non credo, ma almeno non era il server live.

Quindi ho mutato la domanda in "dovrei preoccuparmi" del php esposto. Dopo tutto, se il mio server locale recapiterà il testo dello script in determinate condizioni, potrebbe anche il server live?

    
posta Bobbi Bennett 12.12.2012 - 19:42
fonte

4 risposte

5

La vera chiave qui è evitare di avere un codice PHP significativo in una posizione in cui verrebbe scaricato anche accidentalmente.

Lo scenario ideale sarebbe che la pagina richiesta dagli utenti sia una pagina di indice minima con il minor numero possibile di codice PHP, la cui unica funzione è includere altri script PHP che si trovano in una directory al di fuori dell'area accessibile dal Web.

Questa best practice ti proteggerà dal tipo di errori accidentale nella configurazione del server che sembra essere accaduto in questo caso.

So che questo non risponde direttamente alla domanda. La risposta diretta (secondo la risposta accettata) sembra essere stata effettivamente una sospensione temporanea. È un po 'imbarazzante pensare che un tale errore possa verificarsi e compromettere completamente la sicurezza di un sito, indipendentemente da quanto sia stato temporaneo. Ma possono effettivamente verificarsi, e come sviluppatori responsabili / amministratori del sito, dobbiamo prendere provvedimenti per mitigare il danno prima che accadano. Dobbiamo capire cosa potrebbe accadere se i file di configurazione vengono cancellati o modificati per caso, o se un hacker riesce a aggirare i nostri livelli di sicurezza, e abbiamo bisogno di costruire livelli secondari come rete di sicurezza in modo da limitare il danno se (o più probabilmente quando) quelle cose accadono.

    
risposta data 14.12.2012 - 11:29
fonte
5

Controlla la configurazione del tuo server php come spiegato qui .

Assicurati di avere AddType application/x-httpd-php .php nel file httpd.conf.
Utilizza <?php anziché <? .

    
risposta data 12.12.2012 - 20:03
fonte
2

L'unico modo in cui la sorgente PHP può essere presentata all'utente è se una configurazione del server era disattivata. Un browser può solo accedere alle informazioni presentate dal server Web e il server Web dovrebbe avere PHP elaborare uno script PHP e restituire il risultato. Se lo script PHP è stato inviato al browser, la configurazione del server era disattivata. Ciò che potrebbe aver causato questo problema per una sola pagina è la congettura di chiunque, ma se ci fosse una modifica recente al gestore, avrebbe potuto rimuovere il vecchio gestore appena prima di metterne uno nuovo e potresti essere stato solo fortunato con i tempi.

    
risposta data 12.12.2012 - 23:05
fonte
1

Questo sembra essere un problema con il tuo server, non con Safari. Alcuni server invieranno automaticamente il file PHP al browser per essere scaricati se non riescono ad analizzare il codice PHP. Se ciò accadesse solo una volta, penserei che potrebbe essere un piccolo bug nel tuo interprete PHP, ma se questo sta accadendo molto, ti consiglio di aggiornare il tuo PHP, o di verificare con il tuo host se ne stai usando uno.

    
risposta data 13.12.2012 - 07:20
fonte

Leggi altre domande sui tag