Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

PHP İpucu #2 – Veritabanınızı Koruyun

52 sec read

Yine bir PHP ipucu ile karşınızdayım. PHP uygulamalarımızda ihtiyaçlarımız doğrultusunda verileri depolamak için veritabanı kullanırız. Tabi böyle bir durumda depolanan verilerin güvenliği ayrı bir mesele olarak karşımıza çıkmaktadır. Güvenlik tedbiri olarak pek çok şey söylenebilir ancak olayın başlangıç noktasının girdi kontrolü olduğunu söylemek lazım. Diğer bir deyişle veri filtrelemedir.

Bu yazının bir ipucu olması sebebiyle tüm filtreleme tekniklerini anlatmak yerine sizi sıkmadan basit ve en temel konuya değinmek istiyorum. Bir şekilde kullanıcıdan bir veri girmesini istediniz ya da farklı bir kanaldan uygulamanıza veri çektiniz. Bu veriyi veritabanına girerken sızmaları engelleyecek en temel PHP filtreleme fonksiyonu olan mysql_real_escape_string() kullanmaktan çekinmeyiniz. Kodla anlatmak gerekirse;
[php]<?php
$isim = mysql_real_escape_string($girilen_isim);

// Construct the query.
$query = "SELECT *
FROM users
WHERE name = ‘{$isim}’";

?>[/php]

Tabi verinin girişi esnasında da ctype_alpha() (verilerin tamamının alfabetik karakter olduğunu kontrol eder) benzeri fonksiyonlarla öncelikli bir girdi kontrolü yapabiliriz ki onu da şöyle özetleyebiliriz;
[php]<?php

if (ctype_alpha($_GET[‘name’])) {
$isim = $_GET[‘name’];
} else {
// Girilen isim uygun değil.
}

?>[/php]

Özetlemek gerekirse veritabanınızı mutlaka koruyunuz ve bu koruma tedbirlerini uygulamalarınızın her aşamasında aklınızda bulundurunuz.

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer