Tablo Önekinizi Değiştirin

Joomla için güvenlik önelmlerinden bahsettiğimiz konularımız içinde farklı farklı olarak joomla sitenizi nasıl olurda daha fazla güvenlikli hale getirebileceğinizi bir çok kez anlatmıştık. örneğin htaccess dosyası ile güvenlik konusu, spam konusunda iletişim bileşenine güvenlik kodu uygulaması gibi konuların yanı sıra kullanıcıların ihmali ile adeta zorla riske atılan joomla hakkında bilgilendirme makalesi yayınlamıştık. ayrıca bir çok güvenlik makalesini de sizlerle paylaşmıştık şimdi ise bazı konular içinde geçen ancak değişik bir formülle veritabanı güvenliğini ele alacağız.

Bilindiği gibi joomlanın standart veritabanı tablo öneki “jos_” şeklinde başlar gerek exploit gerekse farklı açıklardan yararlanmak amacı ile sitenizi yoklayan lamer ve hacker’lar öncelikle sql injection denilen metoda sıklıkla başvururlar. Ellerinde de standart olarak joomlanın veritabanı öneki olduğundan bu olayda bu zaafiyet sayılabilecek durumdan yararlanabilirler.

Eğer joomlanızın kurulum aşamasında veritabanı tablo öneki varsayılanı olan “jos_” değiştirmemişseniz öyleyse size bir kaç adımda bu değişikliği şu andaki aktif siteniz üzerinde nasıl yapacağınızı anlatmaya çalışacağım. Tablo önekini değiştirme konusunu daha önce vermiştim ancak bu küçük bir scriptle daha hızlı bir şekilde yapılıyor. Konumuzun orjinali joomla security ile ilgili yazıdan alınmdığını da ayrıca vurgulamakta yarar var.

Veritabanı tablolarınızı hızla ve güvenle aşağıda anlatacağım şekilde yeniden düzenleyebilirsiniz.

Boş bir txt dosyası açarak aşağıdaki kodları bu txt dosyasının içine yapıştırarak farklı kaydet seçeneğinden örnek olarak “rename.php” olarak adlandırın. Ayrıca configuration.php dosyası içinde de “jos_” ibaresini bulup yeni verdiğiniz önekin adını yazmayı unutmayın.

<?php
$new_prefix = 'new_';
require_once 'configuration.php';
$config = new JConfig;
$con = mysql_connect($config->host, $config->user, $config->password);
if(!is_resource($con)) die('Error connecting to db');
$test = mysql_select_db($config->db, $con);
if($test===false) die('Error connecting to db');
$prefix = $config->dbprefix;
$sql = "show tables where `Tables_in_{$config->db}` like '{$prefix}%'";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res))
{
 $old = $row[0];
 $new = $new_prefix . substr($old, 4);
 $temp = mysql_query("RENAME TABLE `$old` TO `$new`");
 if($temp === false) die(mysql_error());
 mysql_free_result($temp);
}
mysql_free_result($res);
mysql_close($con);
echo "OK";

Yukarıdaki kodlar içinde yer alan “$new_prefix = ‘new_’;” kısmını yeniden isimlendirmek istediğiniz tablo öneki ismi ile değiştirin (örneğin $new_prefix = ‘dnm_’;) Daha sonra rename.php olarak kaydedilen bu dosyayı joomlanın configuration.php dosyasının olduğu yere ftp den bağlanarak gönderin.

Artık veritabanımızda yer alan tablo öneklerinin isim değişikliği hazır tek yapmamızgereken tarayıcı adres satırına “örneğin: www.elmadoktoru.com/rename.php” yazmak ve “enter”lamak. Çok kısa bir sürede “OK” şeklinde bir yazıyı gördüğünüzde veritabanı tablolarınızın öneki yukarıda yeniden belirlediğiniz gibi örneğin: “dnm_” olduğunu göreceksiniz.

Not: veritabanı yedeğinizi ve configuration.php dosyanızın yedeğini mutlaka alın. Sunucu bazlı veya diğer sorunlarda geri dönüş imkanınızın olması yaşanacak problemlerin önüne geçecektir.

6 Comments

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir