Amfphp ve Güvenlik

Tarih: Ekim 1st, 2009 | Yazar: Ertuğrul Erkan | Kategori: Action Script | Etiketler: , , , , , , , , , , | 5 Yorum »

Bir sistemde en büyük sorunlardan ve gereksinimlerden birisi de güvenliktir. Çok iyi bir sistemler bile ufacık bir açıktan dolayı uçmuştur. İşte bu yazıda Flash geliştiricilerinin dikkat etmesi olan bir konuyu göreceğiz; Amfphp ve Güvenlik. Biliyorsunuz ki Amfphp ile bağlantı sağlamak oldukça basit; adres ve parametreleri yolluyoruz. Fakat kötü niyetli kişiler de bizim Amfphp dosyalarımız ile bağlantı kurarsa?

Bunun için birkaç ufak çözüm var. Eski sürümde kodlamalardan kaynaklanan problemler vardı fakat kapatıldılar. Yine de uzak bir noktadan bağlantı kurulabiliyor. Bunun çözümü aslında oldukça basit; Cross-domain Peki bu Cross-domain nedir? Sadece Crossdomain mi kullanacağız? Tabi ki hayır başka çözüm yollarıda var!

Cross-domain Türkçe anlamı etkiler arası. Cross-domainlerin amacı sizin hostunuz üzerinde bulunan dosyalara ( Flash türevi ) uzaktan ulaşımı engellemektir. Kendileri xml yapısındadır. Bizim buraya yazacağımız adresler dışında kimse içeriye ulaşamaz. Bu sayede swf dosyalarına birşey gömülemez, uzaktan çalıştırılamaz.

Örnek bir Crossdomain;

<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

Bu dosyada izin verilen domainler satırında * (joker) ifadesi var. O yüzden her yerden ulaşım sağlanabilir. Fakat oraya virgül kullanarak sadece belirli site adresilerini yazarsam ve hostumun ana dizinine atarsam dışarıdan ulaşım sadece oradaki adresler tarafından sağlanabilir hale gelecektir. Bu sayede bütün swf ler güvenli olacaktır.

Bir diğer yöntem ise bütün fonksiyonları protected veya private yapıp yani görünmez yapıp tamamen ekrandan kaldırmak. Çünkü Amfphp bu yapıda olan fonksiyonları göremez. Fakat sadece bunu yaparsak yetmez, çünkü swf dosyamızı fla ya çevirirlerse herşeyi görürler. Bu yüzden birde üstüne swf dosyamızı şifrelememiz lazım..

Son olarak bu yöntemi kullanabiliriz. Amfphp PHP dosyaları tarafından çalıştırılıyor. Bu yüzden başka bir çözüm daha var. Bunun için yine PHP’ yi kullanacağız. Normalde Amfphp nasıl çalışır? Gateway.php dosyası adres belirtilerek çağırılır. Sonrasında ise sınıf ve fonksiyon adı belirterek işlem yaptırılır.

Nesne tabanlı yapıda __construct yani açılış fonksiyonları, sınıf açıldığın anda çalıştırılır. Bizde bu yüzden sınıfımızın altına bir açılış fonksiyonu yerleştiriyoruz ve BU PHP DOSYASINA NEREDEN ULAŞTIĞINA bakıyoruz; yani HTTP_REFERER fonksiyonu ile..

<?
class guvenlik {

function guvenlik() {
	$adres = "www.birogrenciklasigi.com";
	$kim = $_SERVER['HTTP_REFERER'];
	if (strpos($kim,$adres) === false) {
		die("Buralar hep bizimdi, hala bizim");
	}
}

}
?>

Burada gördüğünüz gibi guvenlik isimli sınıf çağırıldığı anda alttaki başlangıç fonksiyonu da çağırılıyor. Sonrasında bu dosyayı çaldıran sistemin nereden ulaştığına bakıyoruz. Yani bir swf doyası index.php içerisinde ise referer olarak index.php yi gösterecektir. Peki o dosya nerede? Tabi ki bizim domain adresimizin altında. İşte o adres içerisinde kendi sitemizin adı geçiyorsa işlemlere devam ediyoruz, haa geçmiyorsa o zaman sayfayı öldürüyoruz ki Amfphp hata versin..

Benim size önerim ise bahsettiğim tüm yöntemleri kullanmanız. Bu sayede sadece Amfphp değil bütün dosyalarınız güvende olacaktır..

İşte gördüğünüz gibi büyük bir açığı çok kolayca kapatabiliyoruz. Daha sonra görüşmek üzere hoşçakalın..

Benzer Yazılar;


“Amfphp ve Güvenlik” yazısında 5 Ahkam var.

  1. 1 someturkishguy 04:10 on Aralık 11th, 2009 anında kesmiş:

    “Çok iyi bir sistemler”

    o da güzel

  2. 2 Ertuğrul Erkan 12:22 on Aralık 11th, 2009 anında kesmiş:

    TDK’ nın ajanları her yerde herhalde?

  3. 3 harun yucesoy 23:35 on Ocak 17th, 2010 anında kesmiş:

    HTTP_REFERRER ‘a pek güvenmemek lazım..

    firefox’un refControl plug-in’ini kullanarak fake referrer üretmek gayet mümkün..

    https://addons.mozilla.org/en-US/firefox/addon/953

  4. 4 İnternet Günlüğüm 12:01 on Ocak 19th, 2010 anında kesmiş:

    Paylaşım için teşekkürler.

  5. 5 atasözleri 12:13 on Şubat 18th, 2010 anında kesmiş:

    Harun çok güzel bir konuya değindiği için kendisine bilare teşekkür ederiz.


Ahkam Kesme Aparatı