10 Jan 2012

Imaj ve Bant Genişliği Hırsızlığını .htaccess Kullanarak Nasıl Önlersiniz

.htaccess, Apache, Blog Posts, Güvenlik, Nasıl yapılır No Comments

Imaj Bant Genişliği Hırsızlığını .htaccess Kullanarak Nasıl Önlersiniz

Web sitenizde birbirinden güzel fotoğraflar kullanıyorsanız bu fotoğrafların sizin izniniz olmadan başka sitelerde de kullanılıyor olma ihtimali vardır. Daha da kötüsü bu web siteleri imajlara “hotlink” verir. Yani imajları kopyalayıp kendi sunucularına koymak yerine doğrudan sizin sunucunuz üzerinden kullanırlar. Böylelikle sadece sizin telif haklarınızı ihlal etmekle kalmaz, aynı zamanda kendi sitelerinde gösterdikleri imajların bant genişliği ücretini de sizin ödemenizi sağlarlar.

Eğer web siteniz apache üzerinde koşuyorsa bu sorundan kurtulmak için aşağıda saydığım basit adımları izlemeniz yeterli olacaktır.

Sistem Gereksinimleri

Bu makalede anlatılan çözüm sitenizin apache web sunucusu üzerinde olmasını gerektirmektedir. Aynı zamanda servis sağlayıcınızın .htaccess dosyası kullanarak varsayılan sunucu konfigürasyonuna müdahale etmenize izin veriyor olmalı. Sunucu konfigürasyonlarına ilgi duyanlar için: bu teknik apache’nin mod_setenvif modülünde sunulan imkanlardan faydalanmaktadır.

Eğer web sunucunuz bu gereksinimleri karşılamıyor ise umutsuzluğa kapılmayın, ileriki bir tarihte PHP ve ASP kullanarak bu işlemi nasıl yapacağınız ile ilgili bir makale yayınlayacağım.

(Web sunucunuzun gereksinimleri karşılayıp karşılamadığını öğrenmek için servis sağlayıcınızın web sitesinde bulunan dökümantasyonları kontrol edin – bu bilgi genellikle web hosting paketi detayları listesinde, fiyat listesinde ya da sipariş formunda belirtilmektedir. Alternatif olarak teknik servisleri ile bağlantıya geçip doğrudan öğrenebilirsiniz.)

Adım Adım Yapılacaklar

İmajlarınızı .htaccess dosyası kullanarak korumak çok kolaydır.

  1. Koruma altına almak istediğiniz tüm imajları (bant genişliği anlamında) ayrı bir klasörde toplayın ve bu klasör adını not edin.
  2. Kullanmaya alışık olduğunuz herhangi bir düz metin editörü kullanarak yeni bir dosya açın ve aşağıdaki metini kopyalayıp bu dosyaya yapıştırın.
    SetEnvIfNoCase Referer "^http://www.alan-adiniz.com/" locally_linked=1
    SetEnvIfNoCase Referer "^http://www.alan-adiniz.com$" locally_linked=1
    SetEnvIfNoCase Referer "^http://alan-adiniz.com/" locally_linked=1
    SetEnvIfNoCase Referer "^http://alan-adiniz.com$" locally_linked=1
    SetEnvIfNoCase Referer "^$" locally_linked=1
    <FilesMatch "\.(gif|png|jpe?g)$">
      Order Allow,Deny
      Allow from env=locally_linked
    </FilesMatch>

    “alan-adiniz.com” kısmını kendi alan adınız ile değiştirin. Web sitenize başka adresler kullanarak da ulaşılabiliyor ise (örneğin www.alan-adiniz.net ya da www.alan-adiniz.com.tr) her biri için SetEnvIfNoCase Referer satırını koymayı unutmayın. Aksi halde bu alan adlarından imajlarınıza ulaşmazsınız. İşiniz bitince dosyayı “.htaccess” ismi ile kaydedin. Unutmayın, ismi olduğu gibi, başında nokta karakteri ile yazmalısınız.

  3. Oluşturduğunuz .htaccess dosyasını imajlarınızın bulunduğu klasöre yükleyin.

Hepsi bu kadar. .htaccess dosyanız “.gif”, “.png”, “.jpg” ve “.jpeg” uzantılı tüm dosyalarınızı koruyacaktır. Dosyayı Microsoft Word veya Wordpad gibi zengin metin editörleri ile değil notepad gibi düz metin editörü kullanarak açmanız ve kaydetmeniz gerektiğini unutmayın.

Açıklama: .htaccess ile Yetkisiz İmaj Kullanımını Önlemek

Bir tarayıcı web sunucunuza ne zaman bir imaj için istek gönderse, aynı zamanda o imajın bağlı olduğu sayfanın URL’ini de gönderir. Üstte bahsettiğimiz .htaccess dosyası sunucunun bu URL’i kontrol etmesini sağlar ve eğer isteği yapan sayfa belirttiğiniz yetkilendirilmiş URL’lerden biri ise sunucu “locally_linked” adı verilen çevresel bir değişken tanımlar. Gönderilen URL eğer yetkilendirilmiş bir URL değil ise bu çevresel değişken tanımlanmaz. Aynı zamanda kodda da görebileceğiniz gibi “locally_linked” değişkenini herhangi bir URL çağırılmadığında da tanımlıyoruz. (SetEnvIfNoCase Referer “^$” locally_linked=1) Sitenize erişmeye çalışan kişi URL’i gizleyen bir proxy arkasında olduğu zamanlarda böyle bir yöntem hayat kurtarıcı olacaktır.

Daha sonra sunucu talep edilen dosyanın uzantısını tanımlı değerlerle karşılaştırır (gif, png, jpg ve jpeg). Eşleşiyor ise ve “locally_linked” değişkeni tanımlanmışsa imajı gösterir, değilse bir hata mesajı döner.

Bant Genişliği Hırsızı İmajınıza Link Verdiğinde Ne Olur

.htaccess dosyasını yaratmanızın ardından, eğer başka bir site imajlarınıza bağlantı veriyor ise ya da vermeye çalışırsa, görecekler ki imajlar görüntülenmiyor. Diğer taraftan imajların sizin sitenizde görüntülenmesinde hiç bir sorun yaşanmayacaktır.

Potansiyel Problemler

Bu metod HTTP_REFERER değişkeni üzerine kurulmuştur. (yönlendirme yapılan adresi içeren değişken) Bu değişken düzgün bir şekilde web sunucusuna iletilmez ise metod çalışmayacaktır. Modern tarayıcıların bir kısmı, bazı anonim web gezintisi proxyleri ve kişisel firewall’lar kullanıcının bu değişken üzerinde oynama yapmasına izin verir. Bu tarayıcılar ve proxyler ya kullanıcı tarafından düzenlenmiş değerler içeren HTTP_REFERER bilgisi taşır ya da hiç bir değer döndürmezler. Aynı zamanda zaman zaman yanlış HTTP_REFERER bilgisi döndüren problemli tarayıcılar da mevcuttur.

Böyle bir durum söz konusu olduğunda kullanıcı sizin sitenizde olsa dahi imajlarınızı göremeyecektir. (bu da sitenizde bozuk görüntüye yol açar) Aynı zamanda aynı ihtimal bu kullanıcının sizin imajlarınızı telif haklarınızı çalan hırsızın sitesinde görmesini de sağlayabilir.

Neyse ki böyle bir durumla karşılaşan kullanıcı sayısı oldukça az. Ancak yine de böyle bir olasılığın var olduğunuzu bilmeniz gerekir.


Notlar :

Makalenin orjinaline http://www.thesitewizard.com/archive/bandwidththeft.shtml adresinden ulaşabilirsiniz.

No Responses to “Imaj ve Bant Genişliği Hırsızlığını .htaccess Kullanarak Nasıl Önlersiniz”

Leave a Reply