Quanto è sicuro installare XAMPP sul mio computer di casa per testare il codice PHP?

16

Voglio testare qualche codice PHP e immagino che il modo migliore sia installare XAMPP - ma sono preoccupato per l'installazione del software del server sul mio computer di casa.

È generalmente sicuro installare XAMPP (dato che non l'ho ancora fatto prima e non ho molta esperienza con la sicurezza del server)? Di cosa ho bisogno di essere a conoscenza? In alternativa, c'è un modo più sicuro per testare il codice PHP?

    
posta Frost 04.09.2011 - 08:02
fonte

6 risposte

19

Apache e MySQL possono essere configurati in modo che ascolti solo le richieste dal tuo computer . Per la maggior parte dei sistemi di test questo va bene e riduce notevolmente il rischio perché i servizi non sono raggiungibili da Internet.

Prima di avviare XAMPP per la prima volta, trova e modifica questi file:

Per Apache modifica i file xampp \ apache \ conf \ httpd.conf e xampp \ apache \ conf \ extra \ httpd-ssl.conf. Cerca le righe che iniziano con "Ascolta", ad esempio

Listen 80

e sostituiscili con

Listen 127.0.0.1:80

Per MySQL apri il file xampp \ mysql \ bin \ my.cnf trova la sezione "[mysqld]" e aggiungi questa riga

bind-address=localhost

Dopo aver avviato i servizi, verifica il risultato accedendo a una finestra di comando e avviando ed eseguendo:

netstat -a -n

Per le voci contrassegnate come LISTEN nell'ultima colonna, guarda la colonna Ascolta. Dovrebbe sempre iniziare con 127.0.0.1 o :: 1 ma non con 0.0.0.0.

    
risposta data 04.09.2011 - 11:21
fonte
5

XAMPP ha un track record molto povero. Esistono vulnerabilità di esecuzione di codice in modalità remota sfruttabili tramite CSRF che sono note e prive di patch. (È acutalmente nel loro merdoso esempio di applicazioni PHP / MySQL fornite in bundle.) Anche se sei legato solo a localhost, questo può essere sfruttato da remoto. L'argomento contatore è che l'utente malintenzionato dovrebbe sapere che stai eseguendo XAMPP. La loro installazione di PHPMyAdmin è sempre obsoleta e ci sono brutti exploit che influenzano anche questo progetto.

Il mio suggerimento è di usare Ubuntu su VM. L'installazione della LAMP di Ubuntu è acutalmente più semplice di XAMPP ed è acutalmente sicura. Esegui solo sudo tasksel o seleziona il pacchetto LAMP quando lo stai installando.

    
risposta data 04.09.2011 - 18:35
fonte
3

Dichiarazione di non responsabilità: sono uno sviluppatore XAMPP.

È sicuro installare XAMPP nel computer locale. Di solito sei connesso a Internet tramite un router, quindi non è possibile accedere alla tua attuale installazione.

Anche XAMPP invia un "Come posso rendere più sicura la mia installazione XAMPP?" sezione dove puoi seguire quella guida per cambiare la password di root di MySQL, disabilitare i servizi che non usi, ecc.

Recentemente XAMPP ha disabilitato il Dashboard XAMPP basato su PHP e abbiamo incluso guide html statiche. Qualsiasi problema relativo a CSFR o relativo a questo pannello ora non esiste.

XAMPP tiene anche conto degli ultimi problemi di sicurezza. Puoi controllare il blog per vedere che abbiamo rilasciato nuove versioni il prima possibile.

    
risposta data 27.11.2015 - 20:02
fonte
1

XAMPP non dovrebbe mai essere utilizzato in un ambiente di produzione e strettamente bloccato e le misure adottate per fissarlo su un computer di sviluppo, inclusi eventuali aggiornamenti o patch di sicurezza dai fornitori di software originali (PHP, Apache, MySQL, ecc.).

Se scegli di installare XAMPP assicurati che sia consentito solo le connessioni dall'indirizzo di loopback. Dovresti verificarlo per Apache, MySQL e tutti gli altri servizi che hai configurato per XAMPP. Come se tu avessi qualcosa a cui puoi accedere internamente dalla LAN e avere qualcun altro sulla tua rete consapevolmente o inconsapevolmente, possono usare exploit per accedere al tuo computer e causare danni.

    
risposta data 06.09.2011 - 00:56
fonte
0

è un modo più sicuro per testare il tuo codice. Puoi - e probabilmente dovrebbe - installare il tuo software server, qualunque esso sia (da XAMPP / WAMP in Windows a Ubuntu Server), in un macchina virtuale . Non è così scoraggiante come potrebbe sembrare all'inizio, anche se potrebbe essere eccessivo se tutto ciò che stai facendo è sviluppare il tuo codice.

Una macchina virtuale sequestra efficacemente qualsiasi cosa accada al server (il guest ) dalla propagazione al computer di casa che esegue la macchina virtuale (l' host ). Immagina di avere permessi configurati in modo errato e uno script che stai test esegue un system('rm -Rf some_dir') nascosto. Nessun problema! Ripristina la tua VM all'ultima istantanea e via. Potresti anche diffare le istantanee per vedere cosa è cambiato.

Inoltre, la scheda di rete sulla mia VM di NAT scelta la VM, costringendo a configurare manualmente il port forwarding affinché la VM possa accedervi, e tanto meno rilevarne l'esistenza.

I test su una VM attenuano anche il rischio di perdite di dati tramite malware. Personalmente, sono molto meno preoccupato del fatto che un'app che sto testando eliminerà maliziosamente qualcosa di me, che lo in modo silenzioso lo ruberà e lo caricherà da qualche parte. Il tuo computer host sarà invisibile alle app in esecuzione nella tua VM.

Sono personalmente parziale di VirtualBox di Oracle ; è completamente gratuito, ha abbastanza funzionalità per mantenermi interessato ed è molto semplice da usare. Le macchine virtuali sono anche portatili: puoi copiare il file della macchina virtuale su un'unità USB e portarlo al lavoro.

Se farai mai test di rischioso di qualsiasi tipo, ti suggerisco di imparare a usare VM e testare lì: è un'abilità molto utile da avere nella tua cintura degli attrezzi.

    
risposta data 29.08.2012 - 22:46
fonte
0

Quindi, cosa intendi esattamente per "sicuro" ?

  1. Riguarda la sicurezza dei dati o la privacy? (cioè altri puoi hackerare il tuo pc tramite le applicazioni del server e visualizzare / controllare i tuoi dati locali)?
  2. O ti preoccupi del tuo codice php o del software che lo farà danneggiare il tuo computer?

Per 1), in genere non è possibile avere accesso al computer in remoto se il sistema operativo è ben configurato. Nella maggior parte dei casi, l'ambiente di rete locale è protetto da NAT, firewall e altre tecniche come le politiche IP dinamiche. Apache può anche essere configurato per accettare solo visite locali come indicato da @HendrikBrummermann.

Per 2), prova solo a scrivere codice robusto e questo è tutto ciò che posso suggerire. Apache e MySQL sono applicazioni server molto leggere. Stai semplicemente facendo un test locale, quindi in genere non dovrebbero esserci pesanti traffici di dati o alti costi di elaborazione che potrebbero portare il sistema al minimo.

    
risposta data 21.07.2014 - 20:13
fonte

Leggi altre domande sui tag