İçeriğe atla
HexaTransfer
Bloga dön
Sifreleme ve guvenlik

Güvenli link paylaşımı: indirme URL'lerinizi koruyun

Güvenli indirme linkleri paylaşımı. URL token güvenliği, link süre sonu ve indirme limitleri.

Güvenli bir indirme linki, URL'nin kendisini anahtarın bir parçası olarak değerlendirir. Slash'tan sonraki slug en az 128 bit entropiden oluşmalı (örn. hexatransfer.com/d/7Kj9xQmN2vP8rBwLsE4fT), günler değil saatler içinde süresi dolmalı, bir ya da iki indirme denemesiyle sınırlı olmalı ve — kritik nokta — tek sır olmamalıdır. Bunu URL fragmentında (# sonrasında) yer alan, sunucu log'una hiç ulaşmayan şifre türetimli AES-256-GCM anahtarıyla eşleştirdiğinizde, Slack önizlemelerinden kurumsal proxy arşivlerine uzanan en yaygın link sızma vektörlerini engellemiş olursunuz.

Entropi: tahmin edilebilirliğin matematiği

Harf ve rakamlardan oluşan 6 karakterli bir slug 36^6 = 2,1 milyar kombinasyon içeriyor. CDN'e saniyede 100.000 URL test edebilen bir botnet'in tüm uzayı yaklaşık altı saatte tarayabildiğini görene kadar bu büyük bir sayı gibi görünüyor. 128 bit (22 base64url karakteri) değerine yükseltildiğinde tahmin süresi güneşin ölüm ısısını aşıyor. crypto.getRandomValues() kullanın, asla Math.random() değil; ve bir veritabanı ID'si asla kodlamayın. Ardışık tokenlar, haftada iki örnek toplayan herkese aktarım hacmini sızdırır.

Anahtarı yola değil fragmenta koyun

URL'deki # işaretinden sonraki her şey fragment tanımlayıcısıdır — tarayıcılar onu sunucuya göndermez. Şifre çözme anahtarını oraya koymak Firefox Send'in öncülük ettiği modeldir: /#k=abc123xyz. Sunucu yalnızca opak indirme slug'ını görür; erişim logları, SIEM dışa aktarımları ve ihlal dökümleri hiçbir anahtar malzemesi içermez. CDN kenar önbellekleri de yükü şifreleyemez. Slack açıklamaları URL'yi irdelerken fragmentı bırakır; bu nedenle önizleme botu anahtarı hiç görmez. Bu tek trick, pratik link müdahale saldırılarının yüzde 80'ini engeller.

Tehditle orantılı son kullanma pencereleri

Varsayılan 7 günlük son kullanma çoğu kullanım için fazla cömert. İş akışına göre ayarlayın: bankaya gönderilen havale .pdf için 15 dakika, sözleşme incelemesi için 4 saat, fotoğraf albümü için 24 saat, eş zamanlı olmayan uluslararası iş birliği için yalnızca 7 gün. Son kullanmayı imzalı URL yükündeki mutlak UTC zaman damgası olarak ifade edin ve sunucu tarafında uygulayın — istemci saatine asla güvenmeyin. Son kullanmada diskteki şifreli metnin üzerine sıfır yazın (ideal olarak NVMe'de blkdiscard ile) ve sonraki bir disk adli incelemesi hiçbir şey bulamasın.

Gerçekten çalışan indirme sayaçları

Tek indirme linki, tarayıcıların kısmi aktarımları agresif biçimde yeniden denediğini fark edene kadar güvenilir görünüyor. Chrome yüzde 80'de bırakıp yeni bir Range isteğiyle devam ederse bu iki indirme sayılır mı? Sayacı HTTP isteği başına değil dosya tamamlanma sınırında uygulayın. Yalnızca son bayt gönderildiğinde ve kimlik doğrulama etiketi doğrulandığında artırın. Alternatif olarak 10 dakikalık pencerede benzersiz oturum ID'lerini izleyin: bir oturum = bir indirme, kaç Range isteği olursa olsun. WeTransfer bunları birbirine karıştırarak linkleri yanlışlıkla kullanılmış olarak işaretlemiş ve eleştiri almıştır.

Kısa ömürlü tokenlarla imzalı URL'ler

Kurumsal akışlar için indirme URL'sini (slug, son kullanma, max_downloads, issuer_id) üzerinde HMAC-SHA256 imzasıyla sarın. Sunucu herhangi bir bayt sunmadan önce imzayı doğrular. S3 önceden imzalı URL'ler bunu yerel olarak yapar; R2 ve Backblaze B2 aynı modeli izler. Slack'e sızan imzalı URL hâlâ tehlikelidir; ancak kısa son kullanma (örneğin 5 dakika) hasarı sınırlar. Bunu IP bağlamayla eşleştirin — imza beklenen /24 önekini içerir — ve coğrafyalar arası link iletmeyi engelleyin.

Referrer ve önizleme sızdırmalarını önleme

Tarayıcılar, indirme sayfasında Referrer-Policy: no-referrer ayarlamadığınız sürece Referer başlığında tam URL'yi (fragment hariç) gönderir. Bu başlık olmadan indirme sayfasından dış linke tıklamak, slug'ı hedefte bulunan her izleyiciye sızdırır. Ayrıca X-Robots-Tag: noindex, nofollow ve Googlebot'un /d/ altına erişimini engelleyen bir robots.txt ayarlayın; böylece bir foruma yanlışlıkla yapıştırılmış link arşivlenmez. Slack ve Teams önizlemeleri için unfurl botlarıyla eşleşen User-Agent'lara 204 No Content döndürün.

İletme kontrolleri ve alıcı bağlama

Ahmet, Mehmet'e bir link gönderdiğinde Mehmet onu herkese iletebilir. Bunu önlemek için linki Mehmet'in kimliğine bağlayın. Artan güçte seçenekler: e-posta doğrulama (mehmet@firma.com adresine tek kullanımlık token), SMS doğrulama (telefon numarasına OTP), ilk ziyarette passkey kaydı veya Mehmet'in Google Workspace'i üzerinden OIDC girişi. Her adım sürtünmeyle sınırlamayı dengeler. GDPR ve KVKK Madde 15 kapsamındaki veri sahibi erişim yanıtı için e-posta doğrulama genellikle yeterlidir. HIPAA kapsamındaki laboratuvar sonucu için passkey veya OIDC uygundur.

İstek üzerine iptal

Tüm önlemlere karşın bir şeyler yanlış gidecektir — çalınan dizüstü, sonlandırılan müteahhit, yanlış alıcı. Linki anında öldüren bir iptal düğmesi önemlidir. Uygulama: her indirmede slug hash'i üzerinden kontrol edilen iptal listesi tutun. Purge API aracılığıyla CDN kenarlarına 60 saniye içinde yayın (Cloudflare'ın /zones/:id/purge_cache URL listesi alır). HexaTransfer iptali gönderen panosundan sunar; Dropbox Transfer ve Smash her ikisi de destekler. İptali üç ayda bir test edin — olaylar sırasında ölü düğmeler düğme olmamaktan kötüdür.

Gözetim olmadan telemetri

İstismarı tespit etmek için yetecek kadar kayıt tutun (IP hash'i, User-Agent ailesi, zaman damgası, sunulan baytlar) ama alıcı kimliğini yeniden oluşturmaya yetecek kadar değil. IP'leri günlük dönen anahtarla hash'leyin; böylece korelasyon pencereleri kısa kalır. URL fragmentını asla kaydetmeyin, açıkçası. 30 günlük saklama penceresi, gözetim arşivi oluşturmadan SOC 2 Ortak Kriter 7.2'yi karşılar. Gönderenin panosunda kötüye kullanım sayaçlarını gösterin; "AS15169'dan 3 başarısız şifre denemesi" gördüklerinde iptal etmeleri gerektiğini bilsinler.

hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, 10 GB'a kadar.

Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin

Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.

Dosya gönder