Türkçe
English

FlashPlayer Güvenliği ve swf izolasyonlarını kaldırma

kilit

FlashPlayer'ın, kişisel veri güvenliğini sağlamak ve veri araklanmasını önlemek için geliştirdiği bir sandbox (izole edilmiş kutu) modeli var.

Her swf derlenirken ya local ya da network erişimi için derlenir. Mesela local sandbox için derlenmiş bir swf dosyası internetten veri alamaz, dosya yükleyemez, GET veya POST verileri yollayamaz. Aynı şekilde network sandbox'ı için derlenmiş bir swf yerel hiç bir kaynağa erişemez (SharedObject gibi zararsız ve izole depolama hariç).

Bu durumu aşmak için, yani .swf'nin tüm kaynaklara ulaşabilmesini sağlamak için FlashPlayer'in ayarlarını değiştirebilirsiniz ama görünmez bir arayüzü olmadığı için biraz can sıkıcı bir yöntem olabilir.

Üstelik siz geliştiriciyseniz ve bunu kullanıcının kafasını karıştırmadan yapmak istiyorsanız bu yöntem işe yaramaz.

Çözüm: FlashPlayer'in güvenli olarak kabul etmesini istediğiniz .swf'ler veya .swf içeren konumlar için minik bir yapılandırma dosyası oluşturup bu dosyayı işletim sisteminin belirli bir yerinde saklamaktır.

Bunu yapmak için:

  • Bir metin düzenleyici açın
  • Boş dosyanın içine ayrı satırlar halinde, güvenli olarak belirtmek istediğiniz .swf'nin, .swf'lerin, swf'leri içeren klasörün veya swf'nin gömülü olduğunu dosyanın ya da uygulamanın (html, exe, app, bin gibi) tam yolunu yazın.
  • Her satır ayrı bir izin girdisi saklar (Flash/Flex uygulamanız birden fazla swf ile çalışıyor olabilir)
  • Her satırda bir izin girdisi tutabilir ya da her izin girdisini farklı .cfg uzantılı dosyalarda saklayabilirsiniz.
  • Son olarak dosyanızı herhangiBirDosyaAdı.cfg ismiyle kaydedin (dosya adının ne olduğu önemli değil, uzantısı önemli)

İzin verilen konumlarda bulunan tüm swf'lere tüm izinler verilir. yani local veya network sandbox'larından veri alışverişi yapabilirler, xml, swf, jpeg vs gibi dosyaları yükleyebilirler, web üzerinde bulundan bir php dosyasına GET veya POST ile veri yollayabilirler.

İzin işlemi bilgisayar veya kullanıcı çapında yapılabilir.
Bilgisyar çapında izin verildiğinde tüm kullanıcılar bu swf'yi kısıtlamasız olarak kullanabilirler.
Kullanıcı çapında izin verildiğinde aynı bilgisayardaki diğer kullanıcılar için kısıtlamalar devam eder.

Bilgisayar çapında izin vermek için

Windows'ta:
C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust

Mac OS X'de:
/Library/Application Support/Macromedia/FlashPlayerTrust
konumlarına oluşturduğunuz bu .cfg dosya(lar)ını kopyalayın.
Eğer FlashPlayerTrust klasörü yoksa oluşturun.

Kullanıcı çapında izin vermek için:


Windows'ta:
C:\Documents and Settings\<KULLANICI_ADI>\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust

Mac OS X'de:
/Users/<KULLANICI_ADI>/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust
konumlarına bu .cfg dosya(lar)ını kopyalayın.
FlashPlayerTrust klasörü yoksa oluşturun.

Örnek .cfg dosyası içerği:

  1. # Bu bir yorum satırı, aşağıdaki klasör ve alt klasöründeki swf'ler izinli
  2. C:\MyFlashApps
  3. # Aşağıdaki App.exe içinde swf gömülü olan bir uygulama olabilir.
  4. C:\Program Files\MyApplication\App.exe
  5. D:\Users
  6. D:\MyApplication\myAppName.swf
  7. D:\MyApplication\myAppName.html
  8. # sürücü harfinin bilinmediği durumlarda işi sağlama almak için
  9. A:\main.swf
  10. C:\main.swf
  11. D:\main.swf
  12. E:\main.swf
  13. F:\main.swf
  14. G:\main.swf
  15. H:\main.swf

özetle; yukarıdaki örnek cfg dosyası
C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust
konumuna kopyalanırsa bütün kullanıcılar için swf güvenli sayılır

C:\Documents and Settings\<KULLANICI_ADI>\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust
konumuna kopyalanırsa sadece bu kullanıcı için swf güvenli sayılır.

swf güvenliği

Bu değinilmesi gereken önemli bir konu. Paylaşım için teşekkür ederim.
Bir diğer önemli konuda swf dosyalarının çalınmasını engellemek yada emeğin korunması amaçlı düzenlemek.
Bu konuda da bilgi sahibiyseniz ve olası tedbirleri paylaşırsanız sevinirim.

malesef bu konuda yapacak

malesef bu konuda yapacak fazla bir şey yok. swf bytecode olarak derlendiğinden decompile işlemi o kadar da zor bir işlem değil. bırakın swf'yi normal makine dili için derlenmiş uygulamalara bile müdahale mümkün. swf'de kaynak kodunu vs korumak için en yapılabilir şey 'obfuscation' yani kafa karıştırma. kaynak kodu decompile yoluyla ele geçirilse bile değişken ve fonksiyon adları 'daha anlamsız' hale getirildiğinden kodun anlaşılması ve değiştirilerek kullanılması çok zor oluyor ama imkansız değil. kısaca şunu söyleyebilirim ki, istemci bilgisayara ulaşan her şeyin sonu aynı, şu an itibariyle kodu istemciden korumanın tek yolu sunucu tarafında tutmak ki bu da swf için mümkün değil. en büyükleri de dahil tüm yazılım sektörünün düşündüğü şey şu: (sunucu taraflı olmadıktan kelli) yazılımı mutlak bir şekilde korumak mümkün değil ama en azından bu kadar uzman olmayan kullanıcılardan (bence %98'den fazladır) koruyabiliriz. yani hiç bir koruma %100 etkili değil, tutturabildiğimize :) aslında burada biraz da yanlış bir bakış açısı içinde olduğumuzu düşünüyorum; zaten bunu yapmamamız gerekiyor. HTML, JavaScript, CSS, ActionScript, bunlar hep istemci taraflı diller ve korumak mümkün olmadığı için direnmenin de pek anlamı yok. eğer bir yazılım projemiz varsa bunun can alıcı kısımlarını sunucu tarafında tutup, ActionScript vs gibi şeyleri sadece arayüz programlaması için kullanmak en doğrusu. Flash Player URLLoader, Loader, URLRequest gibi sınıflarla zaten çok kısa sürelerde sunucuyla iletişim kurabiliyor. Yani ışık hızında değil de 1-2 saniye gecikmeli çalışacak etkileşimlere razı olursak kaynak kodunu sunucu tarafında tutarak koruyabiliriz, bence en mantıklısı bu.

Yeni yorum gönder

Yorum gönderebilmek için kaydolmanıza gerek yok ama kaydolmazsanız, daha sonra gönderdiğiniz yorumu düzenlemek istediğinizde bunu yapamazsınız. Siz iyisi mi kaydolun.
Bu alanın içeriği gizlenecek, genel görünümde yer almayacaktır.
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • İzin verilen HTML etiketleri: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Satır ve paragraflar otomatik olarak bölünürler.

Biçimleme seçenekleri hakkında daha fazla bilgi

CAPTCHA
size zorluk çıkarmak istemiyorum ama botlardan gına geldi. aşağıdaki harfleri okuyabilirseniz bot olmadığınız iddası daha inandırıcı olur.
Image CAPTCHA
Resimde gördüğünüz karakterleri girin.