Tablo Önekinizi Değiştirin

Tablo Önekinizi Değiştirin
19 Ağustos 2010 tarihinde eklendi, 1.437 kez okundu.

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.

Etiketler:

Tablo Önekinizi Değiştirin Konusuna 6 Yorum Yapıldı
  1. hacamat dedi ki:

    $config = new JConfig;

    satırında hata alıyorum. sebebi ne olabilir acaba..

  2. elmadoktoru dedi ki:

    Temada değişikliğe gittiğimden kodlarda da sapma olmuş şu an düzenledim bir daha kontrol edip deneyin

  3. hacamat dedi ki:

    sanırım bu kodlar 1.5 versiyonu için yazılmış. benim sitem hala 1.0 versiyonunda. bundan dolayı tekrardan çalışmadı.
    sitenizde var mı bilmiyorum göremedim yani. acaba 1.0 dan 1.5 hatta 1.6 ya geçişi detaylı anlatabilirseniz sevinirim.

    kolay gelsin teşekkürler.

  4. elmadoktoru dedi ki:

    Evet 1.5 için geçerli, henüz 1.5 sürümünden 1.6 sürümüne geçiş için erken çünkü bu geçişi sağlayacak uygulama halen tam isteneni veremiyor ama eğer denemek isterseniz 1.5 ten 1.6 ya geçiş anlatımları mevcut zaten kullanımı çok basit bir bileşen. Bu konudan başlarsanız daha iyi olur http://www.mmcn.org/joomla-cms/joomla-15-joomla-16-migration-goc-yapmalimiyim.html

  5. hacamat dedi ki:

    benim ilk olarak 1.0’dan 1.5’a geçmem gerekiyor. internetten çok araştırdım bir sürü anlatım var ama yorumlara baktıktan sonra herkesin hata yaptığını ya da geçişin tam anlamıyla olmadığını gördüm.

    şu an için 1.0’dan 1.5’a göç için güzel bir kaynak aramaktayım.

  6. elmadoktoru dedi ki:

    Dediğiniz gibi internette 1.0 – 1.5 geçişi hakkında çok fazla kaynak var. Dikkat etmek ve ne yaptığını bilmek sureti ile aslında o kadar zor değildir. Çok fazla bileşen ve modülünüz yoksa taşımak daha da kolay olacaktır ama biraz emek harcamak gerekiyor çünkü taşıma yapacak bileşen bileşenler modüller ve pluginler özellikle de temayı taşıma (uygunlaştırma) yapmadığından biraz işiniz var tabi…

Sayfa başına git