"Enter"a basıp içeriğe geçin

OPENCART database güvenlik açığı kapatma

OPENCART database güvenlik açığı nedir ve nasıl kapatılır ?

Aşağıdaki opencart sürümlerinde database güvenlik açığı vardır.
Opencart 1.4.x.x
Opencart 1.5.x.x
Opencart 2.0.x.x
Opencart 2.2.x.x
Opencaet 2.3.0.2

Opencart, açık kaynak kodlu ve bedava e-ticaret sitesi olması açısından , internet üzerinde birçok firma tarafından kullanılmaktadır. Birçok üstün özellikleri olmasının yanında çok eski sürümlerden beri gördüğüm çok büyük bir güvenlik açığı var. Opencart kurduğum sitelerde ilk olarak ben bu güvenlik açığını kapatıyorum. Güvenlik açığı şöyle ;

Database bağlantısında herhangi bir sorun varsa ya da sonradan sorun çıkarsa, girmiş olduğunuz database kullanıcı adı ve şifresi ekranda herkese gösteriliyor. Bu başlı başına büyük bir güvenlik sorunudur. Eğer database şifresini yönetim şifresiyle aynı yapanlardansanız da , siteniz uçtu gitti demektir.Sizlere gösterebilmek amacıyla database serverını devre dışı bıraktım ve opencart yüklü siteye giriş yaptım. Aşağıdaki resimde mavi ile silinen yerlerde database kullanıcı adınız, yeşil ile silinen yerlerde de database şifreniz gözüküyor.

Değişiklik yapmanız gereken dosya ve dosya yolu opencart’ ı yüklediğiniz kalsörün altında aşağıdaki gibidir. Bu dosyayı bulup sıradan bir kelime işlemci ile açın.

Önemli not : DEĞİŞİKLİK YAPMADAN ÖNCE MUTLAKA DOSYANIZIN YEDEĞİNİ ALIN !

system/library/db/mysqli.php

OPENCART 2.2.0.0 kullanıyorsanız , bu dosyanın içerisinde aşağıdaki satırı bulun.

if ($this->connection->connect_error) { throw new \Exception(‘Error: ‘ . mysql_error($this->connection) . ‘
Error No: ‘ . mysql_errno($this->connection) . ‘
Error in: ‘ . $trace[1][‘file’] . ‘ line ‘ . $trace[1][‘line’] . ‘
‘ . $sql); }

OPENCART 2.3.0.2 kullanıyorsanız aşağıdaki satırı bulun.

if ($this->connection->connect_error) { throw new \Exception(‘Error: ‘ . $this->connection->error . ‘
Error No: ‘ . $this->connection->errno); }

Bulduğunuz kodun tamamını aşağıdakiyle değiştirip kaydedin.

if ($this->connection->connect_error) { die (“error”); }

Bu değişikliği yaptıktan sonra, artık database’ inizde sorun olsa dahi kullanıcı adı ve şifrenizi herkese göstermeyecektir. Opencart e-ticaret sitenizdeki büyük bir güvenlik açığını kapatmış oldunuz, hayırlı olsun.

Eski sürümler elimde olmadığı için ben sizlere Opencart 2.2.0.0 ve 2.3.0.2 de bu açığın kapatılması yöntemini anlattım. Önceki sürümlerde ( Opencart 1.4.x.x , Opencart 1.5.x.x ve Opencart 2.0.x.x )de buna benzerdir. Güvenlik açığı, yukarıda yolu belirtilen dosya üzerindedir. Biraz göz gezdirip değiştirmeniz gereken satırı kolayca bulabilirsiniz. Değiştireceğiniz satır ise muhtemelen aynı olacaktır.