PHP Kodlarken Dikkat Edilmesi Gerekenler PHP günümüzde çok yaygın olarak kullanılan bir dil. Web site yaparken fazlasıyla kullanılıyor.
Bu konuda PHP kodlarken nasıl güvenli kod yazabiliriz onu anlatacağız.

1- SQL Injectıon
SQL Injection çok köklü bir açık ve maalesef hala birçok web sitesinde bulunmakta. SQL Injection açığını kapatmadığınız taktirde veri tabanınız saldırganların eline geçebilir.
SQL Injection‘u kapatmak için birkaç yöntem var.
ID değerlerinde is_numeric Kullanımı:
is_numeric sayısal değerler için kullanılır girdiğiniz değerin sayısal olup olmadığını kontrol eder.
$id = "1";
if(is_numeric($id))
echo "id sayısal";
else
echo "id sayısal bir değer değil";
?>
Böylelikle alınan input’un sayısal bir değer olup olmadığını kontrol ettik ve SQL Injection’u önledik.
PDO Kullanımı:
PDO kullanmanızda fayda var.
Örnek PDO SQL Injection önleme:
<?php
try {
...
$id = $_GET["id"];
$query = $conn->prepare("select * from users where id=?");
$query->execute(array($id ));
while($row = $query->fetch()){echo $row["x"];
}
} catch(PDOexception $exe){echo $exe->getMessage();
}
?>
PDO dökümanı: https://www.php.net/manual/tr/book.pdo.php
Evet PDO ile SQL Injection’u kapattık.
XSS Açığı
XSS açığı günümüzde yaygın olan bir açıktır. Özellikle stored türü XSS açıkları çok tehlikelidir. Bir diğer XSS konumuzu okumak için tıklayabilirsiniz.
XSS Açığını kapatmak için kullanmamız gereken PHP fonksiyonumuz htmlspecialchars’dır.
//secure.web.tr
$ara=$_GET['ara'];
$ara=htmlspecialchars($ara);
echo($ara);
Evet XSS açığını kapatmış olduk. Alınan verileri htmlspecialchars() fonksiyonu ile temizledik.
Session Kontrolü
Session kontrolü oldukça önemli bir konudur. PHP ile yetki kontrolü kesinlikle yapılmalıdır. Aksi taktirde izinsiz erişimler, IDOR zafiyeti, No Redirect Login Bypass ortaya çıkabilir.
Session kontrolü nasıl yapılır ?
if(isset($_SESSION['admin'])){
echo('Hoşgeldin secure.web.tr');
}
else{
header('location: login.php');
die();
}
Böylelikle session kontrolünü yaptık.
PHP Kodlarken Dikkat Edilmesi Gerekenler adlı konumuzun sonuna geldik.
Daha fazla yardım ve hizmete ihtiyacınız varsa bizimle iletişime geçebilirsiniz: https://www.secure.web.tr/iletisim/