PHP, hem web sunucusu modülü hem de CGI uygulaması sürümleri ile, sistemdeki dosyaları okuyabilen, komutları çalıştırabilen ve ağ bağlantıları kurabilen çok güçlü bir dildir. Bu özellikler, güvenlik önlemi alınmamış bir web sunucusunda istenilen her şeyin çalıştırılabilmesini sağlar. PHP, CGI programlarının yazıldığı Perl ve C gibi dillerden daha güvenli bir dil olacak şekilde tasarlanmıştır, derleme sırasında ve çalışma sırasında ayarlanabilen konfigürasyon seçenekleri, ve doğru kodlama teknikleri ile size istediğiniz özgürlük ve güvenlik birleşimini verecektir.
PHP'yi birçok farklı alanlarda kullanabildiğiniz gibi, davranışlarını kontrol ettiğiniz birçok farklı konfigürasyon seçeneği mevcuttur. Geniş bir seçenek yelpazesi PHP'yi çok çeşitli amaçlarla kullanmanıza imkan tanırken, aynı zamanda bu ayarların arasından yapılacak birleşimlerin güvensiz kurulumlarla sonuçlanmasına neden olabilir.
PHP'nin esnek konfigürasyon yapısı, esnek kod yapısı ile aynı güçtedir. PHP büyük sunucu uygulamaları yazarken shell kullanıcısının bütün gücünü kullanma olanağını sağlarken, ufak sunucu taraflı eklentilerle kontrolde tutulan ve ufak risk taşıyan uygulamaların da yazılabilmesini sağlar. Bu ortamın nasıl inşa edildiği, ve ne kadar güvenli olduğu, çok büyük miktarda PHP geliştiricisine bağlıdır.
Bu bölüm bazı genel güvenlik önerilerinden başlayarak, birlikte güvenle kullanılabilecek farklı konfigürasyon seçeneklerini ve durumları açıklayacak, ve farklı güvenlik seviyeleri için kodlama sırasında alınabilecek farklı kararları ele alacaktır.
Tamamen güvenli bir sistem sanal bir imkansızlıktır, o nedenle güvenlik işine sıklıkla riskin ve kullanılabilirliğin dengelenmesi olarak bakılır. Kullanıcı tarafından gönderilen veri iki farklı biometrik doğrulamadan (retina taraması ve parmak izi gibi) geçiriliyorsa, oldukça yüksek bir maliyet ödeyeceksiniz demektir. Ayrıca karışık sayılabilecek bir formun doldurulması yarım saati bulacak, bu da kullanıcıların güvenlik sistemini aşmak için cesaret bulmasına neden olacaktır.
En iyi güvenlik, kullanıcıların işini engellemeden ve onları gereksiz bir karmaşıklığa sürüklemeden sağlanabilir. Öte yandan, bazı güvenlik saldırıları bu tip normal üstü güvenliğe sahip sistemlerde, zamanla bu sistemlerin zaman aşımına uğraması sonucu gerçekleşmektedir.
Hatırlanmaya değer bir söz: Bir zincir yalnızca en zayıf halkası kadar sağlamdır. Bütün işlemler zaman, yer, işlem tipi vb. gibi ince detaylara kadar kaydedilirken, kullanıcı yalnızca tek bir çerezle doğrulanıyorsa, kaydı tutulan diğer işlemlerin doğruluğu da ciddi biçimde kuşku yaratır.
Sistemi denerken, en basit sayfalar için bile bütün olası testleri yapamayacağınızı aklınızda bulundurun. Sizin aklınıza gelmeyecek bir şey bilinçsiz bir çalışan tarafından, bol bol vakti olan bir cracker tarafından, ya da klavyenin üstünde yürüyen bir kedi tarafından yapılabilir. İşte bu nedenle koda mantık perspektifinden yaklaşmalı, beklenmeyen verinin nereden geleceğini bulmalı, ve buradaki açığın nasıl giderileceği üzerinde çalışmalısınız.
Internet sizin kodunuzu bozarak, sitenizi göçerterek, küfürlü içerik göndererek, ve ilginç bir gün geçirmenize neden olarak kendisine isim yapmak isteyen insanlarla doludur. Küçük ya da büyük bir siteye sahip olmanız önemli değildir, online olarak zaten bir hedef haline gelirsiniz. Birçok saldırı programı boyutu önemsemez, yalnızca geniş IP bloklarını tarayarak kurbanlarını ararlar. Onlardan biri olmamaya çalışın.