Güvenlik ilkesi

phpMyAdmin geliştirici ekibi mümkün olduğunca phpMyAdmin’i güvenli hale getirmek için çaba harcıyor. Ancak phpMyAdmin gibi bir web uygulaması bile hala bir dizi saldırılara karşı savunmasız olabilir ve kötüye kullanılabilecek yeni yollar hala keşfediliyor.

Her bildirilen güvenlik açığı için bir phpMyAdmin Güvenlik Duyurusu (PMASA) yayınlıyoruz ve CVE ID ataması da alıyor. Benzer güvenlik açıklarını tek PMASA’a gruplayabilmekteyiz (örn. birden çok XSS güvenlik açıkları, tek PMASA altında duyurulabilir).

Eğer bir güvenlik açığı bulduğunuzu düşünüyorsanız, lütfen bakınız Güvenlik sorunları bildirme.

Tipik güvenlik açıkları

Bu bölümde, kod tabanımızda görünebilir tipik güvenlik açıklarını anlatacağız. Bu liste, tamamı anlamına gelmez, tipik saldırı yüzeyini gösterme amaçlıdır.

Siteler arası betik çalıştırma (XSS)

phpMyAdmin kullanıcı verilerinin bir parçasını gösterdiğinde, örn. kullanıcının veritabanı içindeki birşey, tüm html özel karakterleri atlatılmalıdır. Bu atlatma bir yerlerde eksik kaldığında kötü niyetli bir kullanıcı, bu veritabanının başka bir kullanıcısını kandırmak için içinde birşey çalıştırarak özel olarak hazırlanmış içerik ile bir veritabanını doldurabilmekte. Bu, örneğin çok sayıda kötü şeyler yapacak bir parça JavaScript kodu olabilir.

phpMyAdmin tüm kullanıcı verilerini, tarayıcı için html içine işlenmeden önce atlatmaya çalışır.

Siteler arası istek sahteciliği (CSRF)

Bir saldırgan phpMyAdmin içinde bazı eylemlere neden olmak için bir phpMyAdmin kullanıcısının bir bağlantıya tıklamasını sağlayarak kandırır. Bu bağlantı ya gönderilmiş eposta ya da birkaç rasgele web sitesi olabilir. Eğer başarılı olursa bu saldırgan kullanıcıların izinlerine sahip bazı eylemleri gerçekleştirebilecektir.

Bunu azaltmak için phpMyAdmin, hassas isteklerde gönderilmek üzere bir belirteç gerektirir. Buradaki fikir bir saldırganın, sunulan bağlantıya dahil edilen şu anki geçerli belirteci ortaya çıkaramamasıdır.

Belirteç her oturum açmada yeniden üretilir, böylece genellikle sadece sınırlı bir süre geçerlidir, saldırgan için geçerli bir tane elde etmeyi daha zor hale getirir.

SQL ekleme

phpMyAdmin’in bütün amacı sql sorgularını uygulamaktır, bu ilk endişemiz değildir. SQL ekleme, mysql denetim bağlantısını ilgilendirdiğinde ise bizim için hassastır. Bu denetim bağlantısı, oturum açmış kullanıcıyı ortaya çıkarmayan ilave izinlere sahip olabilir. Örn. phpMyAdmin yapılandırma depolaması‘na erişim.

(Yönetimsel) Sorgulara dahil kullanıcı verileri her zaman DatabaseInterface::escapeSring() ile çalıştırılmalıdır.

Deneme yanılma saldırısı

phpMyAdmin kendi başına hiçbir şekilde kimlik doğrulaması girişimleri sınırını değerlendirmez. Buna, böyle şeylere karşı korumanın hiçbir yolunun olmadığı durum bilgisi bulunmayan ortamda çalışma ihtiyacı neden olur.

Bunu azaltmak için Captcha kullanabilir veya fail2ban gibi harici araçlardan faydalanabilirsiniz, bu, phpMyAdmin kurulumunuzun güvenliğini sağlama konusunda daha ayrıntılı açıklanmıştır.

Güvenlik sorunları bildirme

phpMyAdmin programlama kodunda bir güvenlik sorunu bulmalısınız, bunu ilk başta yayınlamadan önce lütfen phpMyAdmin güvenlik ekibi ile iletişime geçin. Bu şekilde bir düzeltme hazırlayabilir ve düzeltmeyi sizin duyurunuz ile birlikte yayınlarız. Ayrıca güvenlik duyurularımızda sizden övgüyle bahsedilecektir. Bildiriminize aşağıdaki parmak izini dahil ederek PGP anahtar Kimliği DA68AB39218AB947 ile isteğe bağlı olarak şifreleyebilirsiniz:

pub   4096R/DA68AB39218AB947 2016-08-02
      Key fingerprint = 5BAD 38CF B980 50B9 4BD7  FB5B DA68 AB39 218A B947
uid                          phpMyAdmin Security Team <security@phpmyadmin.net>
sub   4096R/5E4176FB497A31F7 2016-08-02

Anahtar, ya anahtar sunucusundan ya da indirme sunucumuzda bulunan mevcut phpMyAdmin keyring dosyasından veya Keybase kullanarak elde edilebilir.

phpMyAdmin’i daha güvenli hale getirmek için iyileştirmeye yönelik öneriniz olmalı, lütfen bunu sorun izleyici‘mize bildirin. Varolan iyileştirme önerileri sağlamlaştırılan etiketleme aracılığıyla bulunabilir.