Htaccess Hotlink Koruması Nasıl Yapılır?

Web siteleri içerik medyaları için tedbir almadığında bu medyalar(resim, müzik, video vb.) diğer siteler tarafından kullanılabilir. Bunun sonucunda hosting hesabınızda limitli olan bant genişliğinizde kullanıma bağlı limit aşımı olabilir. Eğer bu bandwith(bant genişliği) limiti sizi rahatsız ediyor ve önlem almak istiyorsanız yapmanız gerekenleri bu yazıda derledim.


Hotlink Koruması Nedir?

Hotlink: Siteniz dosya sisteminde bulunan resim, müzik, video vb. gibi dosyalarınızın başka siteler tarafından görüntülenmesini ve indirilmesini engelemek amaçlı kullanılan koruma sistemidir.

Dosyalarınız farklı sitelerde görüntüleniyorsa sizin trafiğiniz olan bant genişliğini kullanmaktadır. Burada görüntülemeden maksat direk olarak sizin alan adınız üzerinden kullanımdır. www.siteadresi.com/music.mp3 dosyanızı alıntı yaparak kendi sitesinde yayınlayan bir site size ait olan trafiği kullanıyor demektir.

Bu kullanım bant genişliğiniz limitli ve limitiniz az miktarda ise sorun olabilmektedir. Bu trafik akışını engellemek için bandwidth koruması işlemine hotlink denilmektedir. Hotlink korumasını hosting paneliniz üzerinden cpanel, plesk veya .htaccess dosyanız ile dosyalarınıza izinsiz erişimi engelleyerek sağlayabilirsiniz.

Hotlink Korumasını Kimler Tercih Etmelidir?

Bu koruma sistemini özellikle trafiği sınırlı olan hosting hesabı sahipleri tercih etmelidir. Siteniz içeriğinde çalınmaya ve alıntı yapmaya müsait video, müzik, resim dosyalarınız varsa bu arşivinizi izinsiz kullanan diğer site sahipleri sizin trafiğinizi tüketmiş olacaktır. Eğer tanıtım ve reklam amaçlı da olsa dosyalarınızın alıntı yapılmasına müsaade ediyorsanız böyle bir koruma yapmanıza gerek kalmayacaktır. Ayrıca bant genişliğiniz yüksek ise yine böyle bir şikayetiniz olmayacaktır. Hiç bir şekilde dosyalarınızın kullanılmamasını istiyorsanız sonraki adımları uygulamanız yeterlidir.

Hotlink Koruması Nasıl Yapılır?

Kullanılan yöntemleri ele alalım. Plesk Panel, Cpanel ve .Htaccess dosyası ile hotlink koruması sağlayabilirsiniz.

Plesk Panel Hotlink Koruması

Panelde Hotlink Protection(Hotlink Koruması) bölümüne girin. Ardından erişime izin vermek istediğiniz alan adlarını ve erişimi engellemek sitediğini dosya uzantılarını yazın.



Cpanel Hotlink Koruması

Güvenlik alanında Hotlink Koruması bölümüne girin. Ardından dost siteleri ve erişimi engellemek istediğiniz dosya uzantılarını girerek hotlink korumasını açın.



Htaccess Komutları İle Hotlink Koruması Ayarlamak

Yukarıda hosting panelinizde yapacağınız ayarlardan daha kesin ve net bir çözüm olan .htaccess dosyasını düzenlemek daha pratik ve sorunsuz bir yöntemdir. Hem arama motorlarını serbest bırakmak hemde güvenilirliği esas aldığımızda tavsiye ettiğim yöntem de .htaccess komutlarının kullanılmasıdır.

Eğer .htaccess dosyanız yok ve hakkında bir fikrinizde bulunmuyorsa basitçe; .htaccess siteniz ile ilgili bir takım server ayarlarını yapılandırdığımız kodlar içeren metin dosyasıdır. Htaccess dosyası oluşturmak için kodlarınızı boş bir metin dosyasına yazarak uzantısını .htaccess olarak kaydedin ve kök dizine yükleyin.

Hatırlatma>>> .htaccess dosyanızda değişiklik yapmadan önce yedeğini almayı utnumayınız.

Tüm erişimleri engellemek için şu kod bloğu yeterlidir;
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?siteadresi\.com [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{HTTP_REFERER} !facebook\. [NC]
RewriteCond %{HTTP_REFERER} !twitter\. [NC]
RewriteCond %{REQUEST_URI}   !^/images/hotlink/hotlink\.png$ [NC]
RewriteRule \.(gif|jpg|png)$ http://siteadresi.com/images/hotlink/hotlink.png [R,NC,L]
</IfModule>

Yukarıdaki kod bloğunun çalışabilmesi için mod_rewrite özelliğinin sunucuda açık ve çalışıyor olması gerekiyor. Bir çok hosting firmasında bu özellik açıktır. Eğer açık değilse hosting firmanızdan açmasını talep edebilir veya httpd.conf dosyanızda mod_rewrite' ın başındaki '#' işaretini kaldırarak serverı yeniden başlatabilirsiniz.

Kodları incelediğimizde;
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?siteadresi\.com [NC]

Yukarıdaki kod kendi sitemizi ve alt dizinleri erişime açmak için gereklidir. Devamında cache dediğimiz önceden tarayıcının belleğinde ki dosyaları da engellemek için yazdığımız koddur. Daha sonra bir takım arama motorları ve sosyal hesapları ekleyerek bu sitelerin erişimine izin veriyoruz.

Yönlendirme;
 RewriteRule \.(gif|jpg|png)$ http://siteadresi.com/images/hotlink/hotlink.png [R,NC,L]

Yukarıdaki kod bloğunda ise hotlink koruması sağladığımız dosyaları hazırladığımız resim ile karşılıyoruz. Yani bir alıntı yapıldığında o sitede bizim belirlediğimiz resim görüntülenecek.

Gif ise Gif, Jpg ise Jpg Göstermek
RewriteCond %{REQUEST_URI}   !^/images/hotlink\.                    [NC]
RewriteRule \.(jpg|gif|png)$ http://siteadresi.com/images/hotlink/hotlink.$1    [F,NC,L]

Yukarıdaki kod bloğunu kullanmanız durumunda dosya uzantılarına ait hotlink resim dosyanızı oluşturmanız gerekiyor. Bu durumda gif alıntı yapıldığında hotlink.gif dosyanız görüntülenecektir.

Birden Fazla Alan Adına Erişim İzni Vermek
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?siteadresi1\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?siteadresi2\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?blogger\. [NC]

Alan adını yazmıyoruz. Serbest bırakıyoruz ki tüm alan adı uzantıları dahil olsun.

Yukarıdaki ilk verdiğim ideal olan .htaccess hotlink koruma ayarıdır. Bu kodlar hotlink korumanızı sağlayacaktır. Kodları test ederek uyguladım ve çalışıyorlar. .htaccess dosyanızı düzenlerken dikkatli olmaya çalışın. Ufak tefek hatalar sitenize erişimi engelleyebilir. Bir sonraki yazımda görüşünceye dek hoşça kalın :)

KAYNAKLAR
http://stackoverflow.com/questions/19962787/rewrite-url-after-redirecting-404-error-htaccess
https://perishablepress.com/creating-the-ultimate-htaccess-anti-hotlinking-strategy/

0 yorum

Yorumda bulunarak kendin için, senden sonrakiler için ve bu blog için bir şeyler yazabilirsin. Durma sor, paylaş. Buraya bir hatıra bırak ;)

HTML: Bazı HTML etiketlerini kullanabilirsiniz.(b,a,i vb.)
UYARI: Yorumlar onaylanmadan direk yayınlanıyor. Yorumunuzun yayında kalması için etik kurallara dikkat edelim.

© Php, E-Ticaret ve Web Programlama
Blogger ozkistyle programmer theme
Released under Creative Commons 3.0 CC BY-NC 3.0