Tüm Sayfalar / 61 - İmzalı URL
Sayfa 61 / 161
URL Güvenliği

İmzalı URL Sistemi

Müzik dosyalarına güvenli ve süreli erişim

Biz Ne Yaptık?

Signed URL (İmzalı URL) ile müzik dosyalarına erişimi kontrol ediyoruz. Her şarkı linki benzersiz bir imza ve son kullanma tarihi içerir. Süresi dolan veya kopyalanan linkler çalışmaz.

Basit Anlatım

Bir şarkı linkini başkasına gönderdiniz diyelim. O kişi linki açtığında çalışmaz çünkü: 1) Link sizin oturumunuza özeldir. 2) Linkin süresi dolmuştur. Bu sayede premium içeriklerin izinsiz paylaşımı engellenir.

Signed URL Anatomisi

/stream/song-id?
signature=a8f7d3e2b1c9...&
expires=1707580800
15
dk Geçerlilik
256
bit İmza
100%
Koruma
0
Paylaşım

Arkada Ne Oluyor?

1

URL Üretilir

Şarkı ID + Kullanıcı ID + Zaman damgası + Gizli anahtar → HMAC-SHA256 imza

2

Kullanıcı Çalar

Player bu URL'i kullanarak şarkıyı stream eder.

3

Sunucu Doğrular

İmza geçerli mi? Süre dolmamış mı? Her iki koşul da sağlanmalı.

4

İçerik Sunulur veya Reddedilir

Geçerliyse müzik akışı başlar, değilse 403 hatası.

Arkaplanda Neler Çalışıyor?

Şarkı çalmak istediğinizde sistem süreli ve imzalı bir URL oluşturur. İşte bu güvenli erişim sürecinin teknik detayları:

1. Oynat Talebi

Kullanıcı şarkı çalmak istediğinde StreamController::generateUrl($song) çağrılır. Şarkı ID ve kullanıcı bilgileri alınır.

2. Süre Belirleme

$expires = now()->addMinutes(15)->timestamp ile 15 dakikalık geçerlilik süresi Unix timestamp olarak hesaplanır.

3. İmza Oluşturma

hash_hmac('sha256', $data, $secretKey) ile şarkı ID + kullanıcı ID + süre birleştirilerek benzersiz imza üretilir.

4. URL Dönüşü

/stream/{id}?signature={hash}&expires={time} formatında URL oluşturulur ve player'a gönderilir.

5. Doğrulama Kontrolü

İstek geldiğinde SignedUrlMiddleware önce süre, sonra imza kontrolü yapar. hash_equals() ile timing attack önlenir.

6. Stream Başlatma

Doğrulama başarılı ise response()->stream() ile müzik dosyası byte-range destekli akışa başlar.

Bu Sayfanın Anahtar Terimleri

Signed URL

(İmzalı URL)

Kriptografik imza içeren, süreli erişim sağlayan URL.

HMAC-SHA256

(Hash-based Message Authentication)

Gizli anahtar ile veri doğrulama algoritması.

Expiration

(Son Kullanma Tarihi)

URL'in geçerli olduğu son an. Unix timestamp formatında.

Stream

(Akış)

Dosyayı indirmeden, parça parça dinleme yöntemi.

14:32
Kalan Süre
İmza
a8f7d3...
Signed URL
Geçerli
15 dk
Geçerlilik
256
bit İmza