Sql injection, remote file injection, local file injection, xss açıkları, html kod enjekt etmek, Remote Command Execution, charset sorunları ... saymakla bitmez Aslında önlemler basittir. mysql real string fonksiyonları ile sql injection'u kısmen engelleyebilirsin. include, require 'lerde değişken kullanırken extra dikkatli olman gerekir.

Mesela en çok php coderların yanıldığı nokta! :
Üye girişi kısmında kullanıcı adını session olarak atarlar ama diyelim ki 2 kişi aynı kullanıcı hesabından giriş yaptı, birisi şifreyi değiştirdi ne oldu? İkiside halen login olmuş durumda. Bunu engellemek mesela kullanıcı paneli panel.php olsun oraya tekrar sorgulatıp kullanıcı bilgisini kontrol ettirebilirsin veya her sayfaya include edilen bir ayar dosyası varsa:
<?
if  ($_SESSION['uadi'] != '') {
// $_SESSION['uadi'] ve $_SESSION['upass'] sql sorgulaması ile kontrol ettir
// Eğer doğruysa sorun yok, değilse destroy yaptırıp sessionları sildir. 
}
if ($_SESSION['uadi'] == '' ) {
//sorun yok
}
?>
Zaman içinde öğreneceksin, bol bol makale oku ama direk orada yazılanları uygulama nerede ne yaptığını mantığını kavra.