PHP için En İyi 12 En İyi Güvenlik Uygulaması
Yayınlanan: 2021-08-14Güvenlik, tüm yazılım geliştiriciler için önemli bir konudur, ancak PHP geliştiricileri bazı benzersiz zorluklarla karşı karşıyadır. Bu blog gönderisinde, PHP için en iyi 12 güvenlik uygulamasını ve web sitenizi güvende ve emniyette tutmaya yardımcı olmak için bunları kodunuza nasıl uygulayabileceğinizi keşfedeceğiz. PHP programlama ihtiyaçlarınızı karşılamak için WebCitz'deki profesyonelleri her zaman kullanabilirsiniz!
1. PHP Sürümünüzü Düzenli Olarak Güncelleyin
Güvenlik açıkları riskini en aza indirmek için PHP sürümünüzün güncel olduğundan emin olun. Düzeltme eki genellikle bilinen hataları düzeltir, bu nedenle yayınlandıkları anda bunlardan yararlanmanız önemlidir.
Bilgisayar korsanları PHP'deki en son kusurlardan yararlanmaya başladı bile. Daha eski sürümlere sahip olanlarınız, kurulumunuzu değiştirmezseniz, izinsiz girişlere karşı savunmasız olacaksınız!
Önizleme sürümünü deneyebilirsiniz, ancak güvenlik danışmanları şirketleri yeni bir yazılımın önizleme sürümlerinden kaçınmaları konusunda uyarır, çünkü hala bilinmeyen güvenlik kusurları olabilir.

2. Hassas Verileri Şifrelenmemiş Bir Bağlantı Üzerinden İnternete Açmayın
Pek çok web sitesi, geliştiricileri korumasız bir FTP protokolü, SSL koruması olmayan e-posta hesabı vb.
Bu dosya ve klasörleri, TLS/SSL ile şifrelenmemiş herhangi bir ağ bağlantısı üzerinden iletmeden önce şifreleyerek koruyun.

3. SQL Enjeksiyon Saldırılarına Karşı Koruyun
SQL (Yapılandırılmış Sorgu Dili) Enjeksiyon güvenlik açığı, türü ve amacı doğru bir şekilde doğrulanmadan bir sorgu içinde kullanıcı girişi kullanıldığında ortaya çıkar ve bu, gönderilen dizelerden birleştirilmiş sorguların ardından gösterilen sonuçların güvenilirliğini tehlikeye atar.
Bu karmaşık gelebilir, ancak bilmeniz gereken tek şey bu saldırının iş verilerinizi ve hassas bilgilerinizi açığa çıkarabileceğidir.
SQL enjeksiyon saldırılarına karşı korunmanın en iyi yolu, girişi güvence altına almaktır - bilgisayar korsanlarının bir form alanı veya çıkış kutusu aracılığıyla web sitesine kendi kodlarını enjekte etmelerini engellemek. Kullanıcı tarafından gönderilen değerleri bir SQL sorgusuna eklemeden önce sterilize etmek istiyorsunuz, örneğin: $input = filter_var($_POST['field'], FILTER_SANITIZE_STRING); if(!empty($input)){ echo “Girdiniz: “.$input.”
“; }else{echo 'Lütfen bir şey girin';} . Boş alan kalmadığından emin olmak için boş () işlevini nasıl kullandığımıza dikkat edin.

4. Hassas Verileri Güvenli Bir Şekilde Sakladığınızdan Emin Olun
Parolaları ve kredi kartı bilgilerini güvende tutmak söz konusu olduğunda, hataya yer yoktur - bir bilgisayar korsanının bu bilgileri içeren dosyalara veya veritabanlarına erişmesi durumunda risk çok yüksektir!
Böyle bir saldırı riskini en aza indirmek için, hassas verileri veritabanınızda saklarken her zaman güçlü bir şifreleme algoritması kullanın - tercihen SHA512_RSA gibi 128 bit AES şifrelemesine sahip bir algoritma.
Ayrıca, şifrelenmiş veritabanlarını yönetmeyi kolaylaştıran bir yazılım da mevcuttur: MySQL Encryption Utilities (MEU). MEU'nun yalnızca MySQL veritabanlarındaki metin alanlarını şifrelediğine dikkat etmek önemlidir, ancak bu çoğu kullanım durumu için yeterlidir.

5. Parolaları Yeniden Kullanmayın
Aynı şifreyi tekrar tekrar kullanmak, hesabınızın er ya da geç saldırıya uğramasının kesin bir yoludur! Rastgele metin dizileri (Rand() gibi) oluşturmak için PHP'nin yerleşik işlevlerini kullanıyorsanız, bunların yalnızca kısa ömürlü olduklarını unutmayın, bu nedenle bunları en az birkaç ayda bir değiştirdiğinizden emin olun.
Büyük harfler, küçük harfler, sayılar ve semboller içermesini istiyorsunuz. Ayrıca, örneğin haftada bir kez veya yanlış bir parolayla üç giriş denemesinden sonra, yeni bir dizenin ne zaman oluşturulması gerektiğine ilişkin daha karmaşık kurallara sahip olmanın da zararı olmaz. Sizin için matematiği yapabilecek bir yazılım bile var!

6. Uygulamalarınızın XSS Saldırılarına Açık Olmadığından Emin Olun
XSS (Siteler Arası Komut Dosyası Oluşturma), bir web sitesine kötü amaçlı kodun enjekte edildiği ve ardından bir ziyaretçinin tarayıcısında yürütüldüğü bir saldırıdır. Bu genellikle çerez hırsızlığına veya oturum ele geçirmeye yol açabilir ve bu da bilgisayar korsanlarının parolalar veya kredi kartı numaraları gibi kendi kimlik bilgilerini girmek zorunda kalmadan tüm hassas verilerinize erişmesini sağlar.

Bu güvenlik açığı, web sayfalarında JavaScript form doğrulaması kullanılarak kullanılabilir, böylece ziyaretçiler tarafından girilen herhangi bir giriş, sayfa yenileme yoluyla otomatik olarak yürütülür, içlerinde resimler gibi aktif içeriğe sahip köprüler görüntülenir ve kullanıcı tarafından sağlanan parametreler '? hesap=123' vb.

7. CSRF Saldırılarına Karşı Koruyun
CSRF (Siteler Arası İstek Sahteciliği), saldırganın sitesinden web uygulamanıza yetkisiz komutların iletildiği bir saldırı türüdür. Bu, diğer şeylerin yanı sıra oturum kaçırmaya veya çerez hırsızlığına yol açabilir.
İlk bakışta zor görünebilir, ancak tek yapmanız gereken, başka bir kullanıcının hesabına giriş yapmak gibi hassas bilgilerin açığa çıkabileceği herhangi bir işlem için doğrulama gerektiren ekstra bir jeton sağlamaktır - bu, yalnızca bir tane olmamasını sağlayacaktır. tek bir güvenlik açığı noktası ve web sitenizde otomatik hesapların kullanılmadığından emin olun.

8. Normal Yamaları Unutmayın!
Çoğu zaman söylemeye gerek yok, ancak sistem sağlayıcınız veya yazılım satıcınız tarafından piyasaya sürüldüklerinde yeni güvenlik açıklarını düzeltmeye devam etmelisiniz.
Başka birinin hangi güvenlik açığını bulduğunu asla bilemezsiniz ama farkında değilsiniz ve web sitenizin hacklenmesindense haberdar olmak daha iyidir!

9. Üretim Ortamlarında Hata Ayıklama Modunu Etkin Bırakmayın
Hata ayıklama kodunun genellikle uzaktan dosya düzenleme (fopen() kullanarak) ve mysql_query() aracılığıyla ham SQL sorguları oluşturma gibi şeyleri etkinleştirme yetenekleri vardır.
Hatalar meydana geldiğinde tam yığın izleri oluşturmak istiyorsanız bunlar harikadır, ancak üretim web sitenizde büyük güvenlik riskleri açar. Bu işlevleri devre dışı bırakmak ve kullanıldıkları örnekleri kaldırmak, iş hataları olduğunda da size çok zaman kazandıracak!

10. Açık Bağlantı Noktaları için Güvenlik Duvarını Kontrol Edin
Windows güncellemeleri yüklemeyi bitirdiğinde 'ileri'ye basmak cazip gelebilir, ancak hangi hizmetlerin çalıştığını ve her şeyin doğru yapılandırılıp yapılandırılmadığını kontrol etmeyi unutmayın - buna gerekirse güvenlik duvarlarının güncellenmesi de dahildir.
Bilgisayar korsanları, saldırılarını kolayca gerçekleştirebilecekleri bir giriş noktası bulamazlarsa, istenmeyen ziyaretçileri dışarıda tutmaya yardımcı olur.

11. Hesap Adı olarak “admin” Kullanmayın
Parolaları tahmin ederek başka birinin sitenize erişmesinden kendinizi korumak istiyorsanız, "admin" gibi başka bir kullanıcı adı kullanmayı veya çok açık olmayan başka bir kullanıcı adını deneyin.
Birisi hesabınıza erişmeye çalışırsa, şifreyi tahmin etmek çok daha zor olacak ve ayrıca alışılmadık bir kullanıcı adı kullanıyorsanız bilgisayar korsanlarının kaba kuvvet yöntemlerini kullanması daha da zor olacaktır!

12. Yeni Güvenlik Açıklarıyla Güncel Kalın
İlk başta göz korkutucu görünebilir, ancak diğer kişilerin hangi güvenlik açıklarını bulduğu konusunda bilgi sahibi olmak, herhangi bir sızıntı durumunda sisteminizin güvende kalmasına yardımcı olacaktır.
Yine de tüm bu güncellemeleri takip etmek zor olabilir - neyse ki artık bu görevi her zamankinden daha kolay hale getiren birçok araç var. Böyle bir araca 'Debian Uzun Süreli Destek' adı verilir ve bu, işletim sisteminin birden çok sürümünü ve PHP'li web sunucuları da dahil olmak üzere her türlü yazılımı desteklemek üzere tasarlanmıştır.

Çözüm
Sonuç olarak bunlar, web sitenizi güvende tutmak için uygulayabileceğiniz en iyi güvenlik uygulamalarından sadece birkaçıdır. Her zaman kolay değildir, ancak çaba sarf etmek için biraz zaman ayırırsanız, saldırıya uğrama olasılığı daha düşük olan bir çevrimiçi varlıkla ödüllendirileceksiniz!
