
E-kitap, şablon, ses dosyası veya kurs materyali satıyorsunuz. Dosyayı sunucuya koyup bağlantıyı e-postayla göndermek en kolay yöntem — ve o bağlantı bir hafta içinde forumlarda dolaşmaya başlıyor.
Bu yazı, dijital ürün dosyalarını korumalı sunmayı ele alıyor.
Bağlantı Neden Sızar?
Doğrudan dosya bağlantısının sorunları:
- Paylaşılabilir. Kopyalanıp herkese gönderilebilir.
- Tahmin edilebilir. Dosya adı sıralıysa diğerleri bulunur.
- Dizin listelemesiyle görülebilir.
- Arama motoruna düşebilir.
- Süresiz geçerlidir.
Dördüncü madde en can sıkıcı olanıdır: bir müşteri indirme bağlantısını bir yerde paylaşırsa, arama motoru o adresi dizine ekler ve ücretli ürününüz arama sonuçlarında ücretsiz görünür.
İkinci madde ise tek bir müşterinin tüm kataloğa ulaşmasını sağlar. Dosya adları sıralı ise, birini alan diğerlerini tahmin eder.
Üçüncü madde sunucu ayarıyla ilgilidir. Klasör listelemesi açıksa, adresi bilen herkes içindeki her şeyi görür.
Temel Koruma Katmanları
Korumanın kademeleri şöyledir:
| Katman | Engellediği |
|---|---|
| Dosyayı web kökü dışına almak | Doğrudan erişim |
| Aracı betikle sunmak | Kontrolsüz indirme |
| Kimlik doğrulaması | Yabancı erişimi |
| Süreli bağlantı | Sonsuz paylaşım |
| İndirme sayısı sınırı | Toplu dağıtım |
Birinci satır her şeyin temelidir ve en çok atlanandır: dosya web ile erişilebilir bir klasörde durduğu sürece, üzerine kurduğunuz hiçbir kontrol onu tam koruyamaz — adres bir kez sızdığında tüm katmanlar atlanmış olur.
Doğru yaklaşım, dosyaları web kökünün dışında bir klasörde tutmak ve yalnızca bir PHP betiği üzerinden sunmaktır. Böylece dosyanın doğrudan bir adresi yoktur.
Paylaşımlı barındırmada bu genellikle mümkündür — hesabınızın ana dizini, web kökünün bir üst seviyesindedir.
Aracı Betik Nasıl Çalışır?
Dosyayı sunan betiğin yaptıkları sırasıyla:
- İsteği doğrular. Bu kişi bu dosyayı alabilir mi?
- Kayıt tutar. Kim, ne zaman, hangi dosya.
- Uygun başlıkları gönderir. Dosya adı ve türü.
- Dosyayı parça parça okur ve gönderir.
Dördüncü madde teknik olarak kritiktir: büyük bir dosyayı tümüyle belleğe okuyup göndermek, PHP bellek sınırını aşar ve indirme başarısız olur.
Dosyayı küçük parçalar hâlinde okuyup göndermek, bellek kullanımını sabit tutar. Böylece dosya boyutundan bağımsız çalışır.
Üçüncü maddede doğru başlıkları göndermek, dosyanın tarayıcıda açılmak yerine indirilmesini sağlar. Yanlış başlıkla bir PDF tarayıcıda açılır, bir ZIP bozuk görünür.
İkinci madde ise sonradan analiz imkânı verir. Bir bağlantının aşırı kullanıldığını ancak kayıt tutuyorsanız fark edersiniz.
Süreli ve Tek Kullanımlık Bağlantılar
Bağlantıya ömür vermenin yolları:
- Zaman damgalı imzalı adres. Belirli süre geçerli.
- Veritabanında saklanan tek kullanımlık anahtar.
- İndirme sayacı. Belirli sayıda kullanılabilir.
- Hesaba bağlı erişim. Giriş yapmadan çalışmaz.
Birinci seçenek veritabanı gerektirmez ama bir incelik taşır: imzalı adres, süresi dolana kadar herkes tarafından kullanılabilir — kısa bir süre seçmek bu riski küçültür.
İkinci seçenek daha güçlüdür çünkü kullanıldıktan sonra geçersizleşir. Ancak yarım kalan indirmeler sorun çıkarabilir — müşteri bağlantısını kaybederse yeni bir tane üretilmesi gerekir.
Dördüncü seçenek en dayanıklı olanıdır. Müşteri hesabına girip ürünlerini görüyorsa, paylaşacağı tek şey kendi hesap bilgileridir.
Koruma ile Kullanılabilirlik Dengesi
Aşırı koruma müşteriyi cezalandırır:
| Katı kural | Yarattığı sorun |
|---|---|
| Tek indirme hakkı | Kesilen indirme kaybolur |
| 15 dakikalık süre | E-posta gecikirse dolar |
| IP adresine bağlama | Mobil ağda IP değişir |
| Tarayıcıya bağlama | Cihaz değişince çalışmaz |
Üçüncü satır özellikle sorunludur: mobil bağlantılarda IP adresi indirme sırasında bile değişebilir ve müşteri hiçbir şey yapmadan erişimini kaybeder.
Bu kuralların hepsi meşru müşteriyi engeller ve kararlı bir kopyalayıcıyı durdurmaz. Makul bir orta yol, birkaç indirme hakkı ve birkaç günlük süredir.
Birinci satırdaki risk çok yaygındır. Bağlantı kesilmesi sık görülür ve tek hakkı olan müşteri destek yazmak zorunda kalır.
Kötüye Kullanımı Tespit Etmek
Sızıntı olup olmadığını anlamak için:
- İndirme sayısını satış sayısıyla karşılaştırın.
- Tek bağlantıdan gelen çok sayıda farklı isteği izleyin.
- Yönlendiren adrese bakın. Nereden geliniyor?
- Bant genişliği kullanımını takip edin.
Dördüncü madde en erken uyarıyı verir: satışlar sabitken bant genişliği kullanımının aniden artması, dosyanızın kontrolsüz dağıtıldığının en net işaretidir.
Üçüncü madde ise nereden sızdığını gösterir. İndirme isteklerinin bir forum sayfasından geldiğini görmek, bağlantının orada paylaşıldığını söyler.
İkinci madde sızmış bir bağlantıyı yakalar ve o bağlantıyı iptal etme fırsatı verir.
Kişiselleştirme ve İz Bırakma
Teknik korumanın ötesinde caydırıcı yöntemler:
- Alıcı adını belgeye yazmak.
- Sipariş numarasını dosyaya gömmek.
- Görsel filigran eklemek.
- Her indirmede farklı kopya üretmek.
Birinci madde şaşırtıcı derecede etkilidir: üzerinde kendi adı yazan bir belgeyi paylaşmak insanları belirgin biçimde caydırır — teknik bir engel değil, sosyal bir engeldir.
İkinci madde ise sızıntının kaynağını bulmayı sağlar. Dosya bir yerde bulunduğunda, hangi siparişten çıktığı anlaşılır.
Üçüncü madde görsel ürünlerde işe yarar ama fazla agresif uygulanırsa ürün değerini düşürür.
Bu tür dinamik dosya üretimi sunucuda işlem gücü ister; hosting altyapısı tarafında PHP işlem süresi ve bellek sınırlarının yeterli olduğundan emin olmak gerekir.
Dosyaları Nerede Saklamalı?
Büyük dosya satıyorsanız barındırma tercihi önem kazanır:
| Yaklaşım | Uygunluk |
|---|---|
| Hosting hesabında saklamak | Küçük dosya, düşük hacim |
| Ayrı depolama servisi | Büyük dosya, yüksek hacim |
| Dağıtım ağı üzerinden | Uluslararası müşteri |
Birinci satırda dikkat edilmesi gereken nokta bant genişliğidir: 100 MB'lık bir dosyanın ayda bin kez indirilmesi 100 GB trafik demektir ve bu, paket sınırınızı hızla tüketebilir.
İkinci satır bu yükü hosting hesabınızdan ayırır. Dosya başka yerde durur, sadece erişim kontrolü sizin sitenizde kalır.
Üçüncü satır ise uzak müşteriler için indirme hızını ciddi biçimde artırır.
Sonuç
Dijital ürün korumasının temeli tek bir kuraldır: dosya web ile erişilebilir bir klasörde durduğu sürece üzerine kurduğunuz hiçbir kontrol onu tam koruyamaz. Dosyaları web kökü dışına alın ve bir PHP betiği üzerinden, parça parça okuyarak sunun — tümüyle belleğe okumak bellek sınırını aşar. Süre ve indirme sınırı koyun ama abartmayın; IP adresine bağlamak mobil müşteriyi cezalandırır. Ve alıcının adını belgeye yazmak, teknik hiçbir engelin sağlayamadığı bir caydırıcılık üretir.
Sıkça Sorulan Sorular (SSS)
Dosyayı nereye koymalıyım?
Web kökünün dışında, doğrudan erişilemeyen bir klasöre. Dosya web ile erişilebilir bir klasörde durduğu sürece üzerine kurduğunuz kontroller adres sızdığında atlanmış olur. Paylaşımlı barındırmada hesabınızın ana dizini genellikle web kökünün bir üst seviyesindedir ve bu iş için uygundur.
Büyük dosyalarda indirme neden yarıda kesiliyor?
Büyük olasılıkla betik dosyayı tümüyle belleğe okuyor ve PHP bellek sınırını aşıyor. Dosyayı küçük parçalar hâlinde okuyup göndermek bellek kullanımını sabit tutar ve dosya boyutundan bağımsız çalışır. Ayrıca PHP çalışma süresi sınırının da yeterli olması gerekir.
Bağlantıyı IP adresine bağlamalı mıyım?
Önerilmez. Mobil bağlantılarda IP adresi indirme sırasında bile değişebilir ve müşteri hiçbir şey yapmadan erişimini kaybeder. Bu kural meşru müşteriyi engeller, kararlı bir kopyalayıcıyı durdurmaz. Makul orta yol birkaç indirme hakkı ve birkaç günlük süredir.
Dosyamın sızdığını nasıl anlarım?
En erken işaret bant genişliğidir: satışlar sabitken kullanımın aniden artması kontrolsüz dağıtımı gösterir. Ayrıca yönlendiren adres kayıtlarına bakın — indirme isteklerinin bir forum sayfasından gelmesi, bağlantının orada paylaşıldığını söyler.