Java Script,php,html kodlarını gizleme / saklama üzerine değişik metodlar

Herkeslerin kafasına takılan ve ütopya gibi duran, kullanıcı tarafında yorumlanan dillere ait kod dosyalarının saklanması ve gizlenmesi üzerine bir yazı.Uzun bir süredir yazmak istiyordum ancak bu güne nasipmiş.

giriş :

Uzun süredir böyle bir yazı yazmak istiyordum ,bugüne nasipmiş,

web siteleri,barındığı sunuculardan sizin bilgisayarınıza geldiği anda içerisinde html kodlarını getirir,
web sitesi hangi dille yazılırsa yazılsın,size html olarak gelir,gelmek zorundadır.Çünkü sizin web sitelerini görüntülemek için kullandığınız tarayıcılar (firefox,chrome os,internet explorer,safari) aslında birer html yorumlayıcısıdır.Birbirlerinden ayrıldıkları tek noktada bu html kodlarını yorumlama hızlarıdır.

** benim yukarıda bahsettiğim html terimi aslında salt html değil (javascript,embed,css) gibi html 4 ve üstü teknolojiler bütünüdür.

Nasıl oluyor ? :

kodlarınızda en iyi korumayı sağlamak için,kodların size ve ziyaretcinize hangi aşamalardan geçerek geldiğini iyi bilmek gerekir.Siz ne kadar iyi bilirseniz,o kadar iyi önlem alabilirsiniz.

kullanıcı / ziyaretçi, sizin site adresinizi tarayıcısına yazıp sayfayı çağırdığı andan itibaren,tarayıcınız sizin sitenizi kendi üzerine çekerek yorumlamaya başlar.
bu süreç içerisinde web siteninize bağladığınız tüm css ve js komut dosyaları da tarayıcıya yüklenir.hatta resim dosyalarıda bu yüklenme kervanı içerisindedir.

hal böyle olunca yazmış olduğunuz ve web sayfasına etki etmesini istediğiniz css ve js kodları önce tarayıcının ön havuzuna alınıyor ardındanda işleme konuluyor.

buraya kadar anlattığım olaylardan çıkacak sonuç şu; sizin kodlarınızın işlenebilmesi için kısmende olsa ziyaretçi bilgisayarına yüklenmesi gerek.

Peki ya sonra ? :

sizin yazmış olduğunuz kodların bulunduğu tüm dosyalar (css – js ) ziyaretçinin bilgisayarına tarayıcı vasıtası ile yüklendikten sonra tarayıcı bu kodları okuyarak ne yapacağına karar veriyor ve kullanıcının tarayıcı ayarlarında yapmış olduğu ziyaret edilmiş sayfaların artık dosyalarını silme aralığına göre sizin kodlarınızın bulunduğu artık dosyalar siliniyor.(tempory internet files,firefox cache vb.) kimi kullanıcı bu ayarları hiç değiştirmediği için uzun bir süre sizin kodlarınız kullanıcı bilgisayarında kalabiliyor.

Sorunu kavradık peki çözümü yok mu ?

yazdığınızın ve yayınladığınız kodların (php ve asp kodları gibi sunucu tarafında yorumlanan kodlar değil,js css gibi ziyaretçi tarafında yorumlanan kodlar) ziyaretçinin bilgisayarına yüklenmemesini engelleyemediğimizi öğrendik.peki yüklenen kodlara tarayıcı dışında kimse erişmesin diyebilir miyiz, tabiki hayır diyemeyiz.

bunca işlem süreci içerisinde biz kod yazarlarının kodlarını saklaması için hiç mi bir önlem alınmamış ? cevap yine hayır. eğer hala bu soruyu sorabiliyorsak zaten işin özünü anlamamışız demektir.

Çözüm olarak kullanılabilecek yöntemler ?

  1. Js kodlarınızı şifreli yazmak:
    bununla ilgili olarak bir çok internet sitesi,servis aracı mevcut ancak her şifrelenen metin tekrar açılarak işlenmek zorunda olduğu için kırılması çok kolaydır. bu yüzden bu yöntem fazlası ile vakit kaybıdır.
  2. Js kodlarınızı bir session kontrollü, asp veya php sayfası içerisine gömerek tarayıcıya gönderme :
    Bu nerden çıktı şimdi diyebilirsiniz ? ancak yukarıda anlattığım mantık içerisinde kafanıza şu soru gelebilir ; eğer tarayıcı kodlarımızı görüyorsa yapacak bir şey yok,peki direk adres yazarak kodlara ulaşmaya çalışanlara karşı bir önlem alamazmıyız ? işte bu yöntem bu sorunun cevabı. Gelen isteğin tarayıcıdan mı yoksa direk mi geldiğini anlayabilen bir algoritma ile (session ve değişken kontrolü) bunun önüne geçtiğinizi varsayabiliriz.
    nedir bu session ve değişken kontrolü ;
    php üzerinden anlatacak olursam, index.php başında $tarayici = true diyerek bir değişken ataması yaptık ve js,css dosyalarınıda sayfaya js.php?js=komutlar şeklinde bağladık,bu bağlama neticesinde js.php sayfası içeride gelen query string’e göre js dosyasını bulup yükleyecek.js.php sayfası bu yüklemeden önce başta atanmış $tarayici değişkeninin içeriğine bakacak,eğer içerik true ise sayfayı dökecek.
    Bu anlattığım yöntem en sık kullanılan yöntemlerden birisidir ve %100 sonuca (bu yöntem için) sadece internet explorer 6 kullanan ziyaretçiler için ulaşabilir.
    şimdi şöyle düşünün kodunuzu çalmaya çalışan (yada görmeye diyelim) kişi sizce sadece internet explorer 6 mı kullanır ?
    Mesela firefox ve firebug kullanan bir kişi bu engele hiç takılmadan tarayıcı içerisinden kodlarınızı görebilir.
  3. karman çorman kod yazarak,kodların anlamsızlaştırma: Bu bir yöntem olmamasına karşın çoğu kişi çözülmesini istemediği kodlarını bu yöntemle yazar.bunları geri döndüren bir program ve araç var ancak şuda var,eğer ben kodlarımızı bu şekilde yazarsam bunu çözmeye çalışan kişi (çakmak isteyen yada görmek isteyen) uğraştığına deyip deymeyeceğini düşünecek ve yoluna ona göre devam edecektir.
  4. Kodları hiç yayınlamamak : Belkide en etkili sonuç budur kanaatindeyim,çünkü yayınlanmamış kod,hiç kırılmamış,görülmemiş ve ulaşılmamış koddur.

Son söz:

Web 2.0 felsefesi ile birlikte,amaç görsellikten çok içeriğe döndüğü için artık çoğu şeyi saklamanın manası kalmamıştır.
web sitelerinin hepsi görsel birbirine benzese bile içerik olarak birbirini tutmamaktadır.işin amacı ve doğası bu yöndedir. Eğer çok iyi yazdığınıza inandığınız bir js kodunu saklamak istiyorsanız bunu başaramaz,beyhude çabalamış olursunuz.siz sadece önlem alabilirsiniz.

Sende bir şeyler ekle


Bu sitedeki bütün yazıların hakları saklıdır, hepsi Ali GÜNDOĞDU'ya aittir ve Creative Commons lisansı ile lisanslıdır. Lütfen alıntı yaparken link veriniz ve yazarı belirtiniz. Altyapı : Wordpress , Üst Yapı : VuskaBlogThemev1.0 by Blog.Vuska.NET aka Ali GÜNDOĞDU