NGINX’te hotlink koruması, internet üzerindeki içeriklerinizin (resimler, videolar, dosyalar, vb.) başkaları tarafından izinsiz bir şekilde başka web sitelerinde kullanılmasını engellemeyi amaçlar. Bu, genellikle sitenizin bant genişliğini korumak ve içerik haklarını savunmak için önemlidir. Hotlink, bir web sitesindeki içeriğin, başka bir site üzerinden doğrudan linklenmesiyle gerçekleşir. Örneğin, bir web sitesi, sizin resminizi kendi sayfasında yerel olarak barındırmadan, doğrudan bağlantı ile çağırabilir.
NGINX, güçlü bir web sunucusu olduğundan, hotlink koruması eklemek için yaygın olarak kullanılır. Aşağıda, NGINX üzerinde hotlink koruması yapmanın adımlarını, temel kavramları, NGINX yapılandırmasını, konfigürasyon örneklerini ve önemli ipuçlarını bulabilirsiniz.
1. Hotlink Koruması Nedir?
İçindekiler
Hotlink koruması, bir web sitesinde bulunan dosyaların başka bir site tarafından izinsiz şekilde kullanılmasıdır. Web sunucuları bu tür hotlinking işlemlerini engellemeyi amaçlar. Hotlinking’in kötü yönü, web sitenizin kaynaklarını (özellikle bant genişliğini) başkalarının kullanmasına izin verir. Hotlink koruması, yalnızca belirli sitelerin, belirli dosyaları görüntülemesine veya indirmesine izin verir.
Hotlinking’in Olumsuz Yönleri:
- Bant genişliği israfı: Hotlinking, dosyalarınızı başka bir site üzerinden çağırarak sizin sunucunuzun bant genişliğini tüketir.
- İçerik sahipliği: Hotlinking, içerik sahipliğine saygısızlık anlamına gelir, çünkü içerik, sahibinin izni olmadan başka bir yerde gösterilmektedir.
- SEO etkileri: Hotlinking, SEO üzerinde olumsuz etkiler yaratabilir. Google, başka sitelere gönderilen linkleri bazen olumsuz değerlendirebilir.
2. NGINX Üzerinde Hotlink Koruması Nasıl Yapılır?
NGINX üzerinde hotlink koruması yapmak, genellikle nginx.conf
dosyasındaki belirli direktifler ile sağlanır. Hotlinking, sadece belirli referans başlıkları üzerinden geçerek kontrol edilebilir.
Hotlink Koruması İçin Temel Adımlar:
- NGINX yapılandırma dosyasını açın: NGINX konfigürasyon dosyasını açmak için aşağıdaki komutu kullanın:
Veya siteye özel konfigürasyon dosyasını açın:
- Yasaklanacak referansları ekleyin: Hotlinking korumasını, belirli dosyaların sadece kendi sitenizden veya belirli sitelerden erişilebilir olmasını sağlayacak şekilde yapılandırabilirsiniz.
- Konfigürasyonu düzenleyin ve kontrol edin: Yapılandırmayı düzenledikten sonra, NGINX yapılandırmasının doğru olduğundan emin olun. Test etmek için aşağıdaki komutu çalıştırabilirsiniz:
- NGINX’i yeniden başlatın: Yapılandırma dosyasını değiştirdikten sonra, NGINX’i yeniden başlatmanız gerekir:
3. Hotlink Koruması için NGINX Konfigürasyon Örnekleri
Aşağıda, farklı hotlink koruması senaryoları için NGINX yapılandırma örnekleri bulunmaktadır.
1. Temel Hotlink Koruması
Bu konfigürasyon, hotlinking yapılmasına karşı tüm sitenizi korur. Sadece belirtilen domain adı üzerinden erişime izin verilir.
valid_referers
: Bu direktif, hangi domainlerin içeriğinize erişebileceğini belirler.none
ifadesi, referans başlığı olmadan yapılan istekleri engeller.if ($invalid_referer)
: Hotlinking yapan isteklere 403 (Forbidden) hatası verir.
2. Sadece Belirli Bir Domain’e İzin Verme
Aşağıdaki yapılandırma, sadece example.com
sitesinden hotlinking yapılmasına izin verir. Diğer tüm referanslar engellenir.
3. Hotlinking Yapılmasına Tamamen İzin Verme (Sadece Kendi Siteyi Korumak)
Eğer sadece kendi sitenizin resimlerine hotlinking yapılmasına izin vermek istiyorsanız, diğer domainlerin erişmesini engellemek için aşağıdaki konfigürasyonu kullanabilirsiniz.
4. Hotlinking’i Engellemek ve Kendi İmajınızı Gösterme
Hotlinking yapan sitelere kendi imajınızı göstermek istiyorsanız, aşağıdaki gibi bir yapılandırma yapabilirsiniz:
Burada, hotlinking yapmaya çalışan kullanıcıya kendi hotlink.jpg
resminiz gösterilecektir.
4. Hotlink Koruması için NGINX’in Avantajları
- Performans: NGINX, düşük kaynak kullanımı ile yüksek performans sunar, bu da hotlinking koruması için idealdir.
- Esneklik: Yüksek esneklik ile farklı hotlinking senaryolarını yönetebilirsiniz.
- Kolay Konfigürasyon: NGINX’in basit yapılandırma dosyaları sayesinde, hotlink koruması hızlıca ve kolayca uygulanabilir.
5. Hotlink Koruması İçin Ekstra İpuçları
1. Resimleri Farklı Sunucularda Barındırma
Resimlerinizi farklı bir sunucuda barındırarak, bu resimlere sadece kendi sunucunuzdan erişimi sınırlayabilirsiniz.
2. SSL Kullanımı
Hotlinking’i engellerken, SSL sertifikası kullanarak güvenli bağlantı sağlamayı unutmayın.
3. Web Uygulaması Güvenlik Duvarı
NGINX dışında bir web uygulaması güvenlik duvarı (WAF) kullanarak, daha ileri düzeyde hotlinking engellemeleri yapabilirsiniz.
6. NGINX Konfigürasyonunda Dikkat Edilmesi Gerekenler
- Konfigürasyon Dosyasının Yedeğini Alın: Yapılandırma dosyasını değiştirmeden önce, mevcut dosyanın yedeğini almak iyi bir uygulamadır.
- Test Edin: Değişikliklerinizi canlıya almadan önce, test ortamında test edin.
- Bant Genişliğini İzleyin: Hotlinking’in bant genişliğinize etkilerini takip etmek için analiz araçları kullanın.
7. Sonuç
NGINX üzerinde hotlink koruması yapmak, bant genişliği israfını engellemek ve içeriklerinizi korumak için etkili bir yöntemdir. Farklı senaryolar için uygun yapılandırmalarla web sunucunuzdaki içeriğin yalnızca izin verilen domainlerden görüntülenmesini sağlayabilirsiniz. Yine de, hotlinking’in önlenmesi tamamen güvenlikli değildir, ancak iyi yapılandırılmış bir sistemle önemli ölçüde engellenebilir.