Bazı PHP kodu test etmek istiyorum ve en iyi yolu XAMPP yüklemek olduğunu anlıyorum - ama ev bilgisayarımda sunucu yazılımı yükleme konusunda endişeliyim.
XAMPP'yi yüklemek genellikle güvenli midir (daha önce yapmadığım ve sunucu güvenliği konusunda çok fazla deneyimim olmadığı için)? Nelerden haberdar olmam gerekir? Alternatif olarak, PHP kodunu test etmenin daha güvenli bir yolu var mı?
Apache ve MySQL, yalnızca kendi bilgisayarınızdan istekleri dinleyecekler olacak şekilde yapılandırılabilir. Çoğu test sistemi için bu iyidir ve hizmetlere internetten erişilemediğinden riski büyük ölçüde azaltır.
XAMPP'yi ilk kez başlatmadan önce şu dosyaları bulun ve düzenleyin:
Apache için xampp\Apache\conf\httpd.conf ve xampp\Apache\conf\extra\httpd-ssl.conf dosyalarını düzenleyin. "Dinle" ile başlayan satırları arayın.
Listen 80
ve yerine
Listen 127.0.0.1:80
MySQL için xampp\mysql\bin\my.cnf dosyasını açın "[mysqld]" bölümünü bulun ve bu satırı ekleyin
bind-address=localhost
Hizmetleri başlattıktan sonra, bir komut penceresine giderek sonucu doğrulayın ve başlatın ve çalıştırın:
netstat -a -n
Son sütunda LISTEN olarak işaretlenen girişler için Dinle sütununa bakın. Her zaman 127.0.0.1 veya :: 1 ile başlamalı ancak 0.0.0.0 ile başlamamalıdır.
XAMPP, çok zayıf bir güvenlik geçmişine sahiptir. Bilinen ve eklenmeyen CSRF aracılığıyla yararlanılabilen uzaktan kod yürütme güvenlik açıkları vardır. (Birlikte gelen boktan örnek PHP/MySQL uygulamaları acutally.) Sadece localhost bağlı olsa bile, bu uzaktan istismar edilebilir. Karşı argüman, saldırganın XAMPP çalıştırdığınızı bilmesi gerektiğidir. PHPMyAdmin yüklemeleri her zaman güncel değildir ve bu projeyi de etkileyen kötü istismarlar vardır.
Benim önerim VM üzerinde Ubuntu kullanmak. Ubuntu'nun LAMP kurulumu, XAMPP'den acutally daha kolaydır ve acutally güvenlidir. Sadece koş
Sudo tasksel veya yüklerken
LAMP paketini seçin.
Feragatname: Ben bir XAMPP geliştiricisiyim.
Yerel makinenize XAMPP kurmak güvenlidir. Genellikle internete bir yönlendirici üzerinden bağlanırsınız, dolayısıyla mevcut kurulumunuza erişmeniz mümkün değildir.
Ayrıca XAMPP bir "XAMPP kurulumumu nasıl daha güvenli hale getirebilirim?" Bölümü MySQL kök parolasını değiştirmek, kullanmadığınız hizmetleri devre dışı bırakmak vb. İçin bu kılavuzu takip edebilirsiniz.
Son zamanlarda XAMPP, PHP tabanlı XAMPP Panosunu devre dışı bıraktı ve statik html kılavuzları ekledik. Artık CSFR veya bu panelle ilgili herhangi bir sorun mevcut değil.
XAMPP ayrıca en son güvenlik sorunlarını da dikkate alır. Mümkün olan en kısa sürede yeni sürümler çıkardığımızı görmek için blogu kontrol edebilirsiniz.
XAMPP hiçbir zaman bir üretim ortamında kullanılmamalı ve orijinal yazılım satıcılarından (PHP, Apache, MySQL, vb.) Yükseltmeler veya güvenlik yamaları da dahil olmak üzere geliştirme makinesinde güvenli bir şekilde kilitlenmeli ve adımlar atılmalıdır.
XAMPP'yi kurmayı seçerseniz, yalnızca geri döngü adresinden bağlantılara izin verdiğinden emin olun. Bunu Apache, MySQL ve XAMPP için ayarladığınız diğer hizmetler için doğrulamanız gerekir. Sanki LAN'dan dahili olarak erişilebilen ve ağınızdaki bir başkası bilerek veya bilmeden makinenize erişmek ve zarar vermek için açıkları kullanabilirler.
Peki, tam olarak ne demek istiyorsun "güvenli"?
1) için, işletim sisteminizi iyi yapılandırdıysanız, bilgisayarınıza uzaktan erişmeniz genellikle mümkün değildir. Çoğu durumda, yerel ağ ortamınız NAT, güvenlik duvarları ve dinamik IP ilkeleri gibi diğer tekniklerle korunur. Apache ayrıca @HendrikBrummermann'ın işaret ettiği gibi yerel ziyaretleri kabul edecek şekilde yapılandırılabilir.
2), sadece sağlam kod yazmaya çalışın ve önerebileceğim bu kadar. Apache ve MySQL çok hafif sunucu uygulamalarıdır. Sadece yerel bir test yapıyorsunuz, bu nedenle genellikle sisteminizi düşürebilecek ağır veri trafiği veya yüksek bilgi işlem giderleri olmamalıdır.
Kodunuzu test etmek için daha güvenli bir yol vardır. Ne olursa olsun, sunucu yazılımınızı (Windows'ta XAMPP/WAMP'tan Ubuntu Sunucusuna), sanal makine içine yükleyebilirsiniz - ve muhtemelen yüklemeniz gerekir. İlk başta göründüğü kadar ürkütücü değil, ancak yaptığınız tek şey kendi kodunuzu geliştirmek aşırıya kaçabilir.
A VM, sunucunuza ne olursa olsun ( misafir sanal makineyi çalıştıran ev bilgisayarınıza yayılmasından etkili bir şekilde sekanslar) ( Ana Bilgisayar ) Uygunsuz izinleri yapılandırdığınızı ve test ettiğiniz bir komut dosyasının gizli bir
system('rm -Rf some_dir') yürüttüğünü düşünün. Sorun değil! VM en son anlık görüntüye geri dönün ve gidip gidin. Neyin değiştiğini görmek için anlık görüntüleri bile dağıtabilirsiniz.
Ayrıca, VM seçim NAT'mdaki ağ bağdaştırıcısı, sanal makineyi VM erişmek için bağlantı noktası yönlendirmesini manuel olarak yapılandırmaya zorlayarak, bunu algılansın) var.
Bir VM içinde test etmek de kötü amaçlı yazılım yoluyla veri sızıntısı riskini azaltır. Şahsen, test ettiğim bir uygulamanın kötü niyetli olarak bir şeyden sileceğinden daha az endişeliyim sessizce çalın ve bir yere yükleyin Ana makineniz VM'nizde çalışan uygulamalar tarafından görülmez.
Şahsen --- kısmi Oracle'ın VirtualBox ; tamamen ücretsiz, ilgimi çekecek kadar özelliğe sahip ve kullanımı çok basit. VM'ler de taşınabilir: sanal makine dosyasını bir USB sürücüsüne kopyalayabilir ve çalıştırabilirsiniz.
Herhangi bir türde riskli yazılım testi yapacaksanız, VM'leri kullanmayı ve orada test etmeyi öğrenmenizi öneririm: çok yararlı bir yetenek alet kemerinizde olması.