it-swarm.dev

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

Voglio provare alcuni PHP e immagino che il modo migliore sia installare XAMPP - ma sono nervoso per l'installazione del software server sul mio computer di casa.

È generalmente sicuro installare XAMPP (dato che non l'ho mai fatto prima e non ho molta esperienza con la sicurezza del server)? Di cosa devo essere consapevole? In alternativa, esiste un modo più sicuro per testare PHP?

18
Frost

Apache e MySQL possono essere configurati in modo che ascoltino solo le richieste dal proprio 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" come

Listen 80

e sostituirli 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 ed avvia ed esegui:

netstat -a -n

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

22

XAMPP ha un track record di sicurezza molto scarso. Esistono vulnerabilità nell'esecuzione di codice in remoto sfruttabili tramite CSRF che sono note e senza patch. (È acutamente nel loro esempio merdoso applicazioni PHP/MySQL fornite in bundle.) Anche se sei legato solo a localhost, questo può essere sfruttato da remoto. Il contro argomento è che l'attaccante dovrebbe sapere che stai eseguendo XAMPP. La loro installazione di PHPMyAdmin è sempre obsoleta e ci sono exploit cattivi che influenzano anche questo progetto.

Il mio consiglio è di usare Ubuntu su VM. L'installazione di LAMP di Ubuntu è molto più semplice di XAMPP ed è assolutamente sicura. Corri Sudo tasksel o seleziona il pacchetto LAMP durante l'installazione.

5
rook

Disclaimer: sono uno sviluppatore XAMPP.

Installare XAMPP nel tuo computer locale è sicuro. Di solito si è connessi a Internet tramite un router, quindi non è possibile accedere all'installazione corrente.

Inoltre XAMPP spedisce un sezione "Come posso rendere più sicura la mia installazione XAMPP?" 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 al CSFR o relativo a questo pannello ora non esiste.

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

5
user93088

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

Se si sceglie di installare XAMPP, assicurarsi di consentire solo connessioni dall'indirizzo di loopback. È necessario verificarlo per Apache, MySQL e qualsiasi altro servizio configurato per XAMPP. Come se avessi qualcosa a cui puoi accedere internamente dalla LAN e avere qualcun altro sulla tua rete consapevolmente o inconsapevolmente, possono usare exploit per accedere alla tua macchina e causare danni.

1
ITOps

Quindi, cosa intendi esattamente con "sicuro"?

  1. Ti preoccupi della sicurezza dei dati o della privacy? (ovvero altri possono 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 danneggerà 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 i criteri IP dinamici. Apache può anche essere configurato per accettare solo visite locali come sottolinea @HendrikBrummermann.

Per 2), prova a scrivere codice robusto e questo è tutto ciò che posso suggerire. Apache e MySQL sono applicazioni server molto leggere. Stai solo facendo dei test locali, quindi in genere non dovrebbero esserci pesanti traffici di dati o elevati costi di elaborazione che potrebbero far crollare il tuo sistema.

0
shuangwhywhy

C'è c'è un modo più sicuro per testare il tuo codice. Puoi - e probabilmente dovresti - 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.

A VM sequestra efficacemente qualunque cosa accada al tuo server (il guest ) dalla propagazione al tuo computer di casa che esegue la macchina virtuale (l'host ). Immagina di avere autorizzazioni configurate in modo errato e che uno script che stai testando esegua un system('rm -Rf some_dir') nascosto. Nessun problema! Ripristina il tuo VM all'ultima istantanea e via. Puoi anche diff le istantanee per vedere cosa è cambiato.

Inoltre, l'adattatore di rete su my VM di scelta NAT NATs la VM, costringendoti a configurare manualmente il port forwarding per VM per accedervi, figuriamoci rilevare che esiste.

Test in a VM mitiga anche il rischio di perdita di dati attraverso malware. Personalmente, sono molto meno preoccupato che un'app che sto testando eliminerà maliziosamente qualcosa di quanto non lo sia rubalo silenziosamente e caricalo da qualche parte. La tua macchina host sarà invisibile alle app in esecuzione nella tua VM.

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

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

0
msanford