🔒 Güvenlik Planı

DevTools Agresif Koruma Sistemi

Muzibu - HLS İndirme Koruması

📅 11 Ocak 2026 - 21:30

📝 Basit Anlatım (Herkes İçin)

Sorun: Kullanıcılar F12 (DevTools) açıp "Network" sekmesinden şarkı dosyalarını görebiliyor ve "indirebiliyoruz" diye laf ediyorlar.

Çözüm: DevTools açıldığı anda sistemi kapatacağız:

  • Normal Kullanıcı: Hiçbir şey fark etmez, müzik dinlemeye devam eder
  • DevTools Açan: Ekran kararır, "Yetkisiz Erişim" uyarısı, 3 saniye sonra LOGOUT!
  • Admin/Root: Özel şifre girerek DevTools kullanabilir (geliştirme için)

💡 Sonuç:

Arkadaşlar "şarkıyı indirebiliyoruz" diyemez. Deneyen anında logout olur, tekrar giriş yapsa bile aynı şey olur.

🔧 Teknik Detaylar (Geliştiriciler İçin)

Nasıl Çalışır?

1. DevTools Detection (4 Yöntem)

  • window.outerWidth - window.innerWidth → DevTools genişlik kontrolü
  • debugger statement → Açıksa duraklar
  • console.log toString() override → Console açıksa tetiklenir
  • window.devtools timing → Performance kontrolü

2. Whitelist Sistemi (Admin Bypass)

  • LocalStorage'da özel token saklanır
  • Admin login olunca backend token verir
  • Token varsa DevTools koruması bypass edilir

3. Agresif Tepki (3 Aşama)

  • Aşama 1: Ekran kararır, uyarı modalı açılır
  • Aşama 2: 3 saniye geri sayım
  • Aşama 3: Logout + redirect to login page

Hangi Dosyalar Değişecek?

resources/views/themes/muzibu/layouts/app.blade.php

→ DevTools detector script eklenecek (head'de)

public/themes/muzibu/js/devtools-guard.js

→ YENİ DOSYA: Koruma sistemi (detector + modal + logout)

app/Http/Middleware/AdminAuthMiddleware.php

→ Admin login'de whitelist token verecek

resources/views/components/muzibu/devtools-warning-modal.blade.php

→ YENİ DOSYA: Uyarı modalı (kırmızı ekran + countdown)

🔄 Nasıl Çalışacak? (Akış Şeması)

1

Sayfa Yüklendiğinde

DevTools detector aktif olur, her 500ms kontrol eder

2

DevTools Açıldığında

Whitelist kontrolü yapılır (admin token var mı?)

3A

Token Varsa (Admin/Root)

Koruma bypass edilir, DevTools kullanılabilir

3B

Token Yoksa (Normal Kullanıcı)

Agresif tepki başlar

0 saniye: Ekran kararır, modal açılır

0-3 saniye: Geri sayım (3... 2... 1...)

3 saniye: Logout + redirect /login

4

Tekrar Giriş Yaparsa

DevTools açıksa yine aynı döngü başlar (sonsuz)

⚠️ Riskler ve Dikkat Edilecekler

Risk 1: False Positive (Yanlış Alarm)

Bazı browser extension'lar (AdBlock, Translator) DevTools varmış gibi algılanabilir.

Çözüm: Birden fazla yöntemle kontrol ederiz, sadece 1 yöntem tetiklenirse alarm vermeyiz.

Risk 2: Admin Kendini Logout Yapar

Admin login olduysa ama whitelist token verilmezse, kendi kendini logout yapar.

Çözüm: Backend'de "is_admin" kontrolü yapıp otomatik token vereceğiz.

Risk 3: Bypass Edilebilir

Teknik bilgisi olan biri JavaScript'i disable edip veya browser debug edip bypass edebilir.

Gerçek: %100 koruma imkansız. Ama "arkadaşların laf etmesini" önler.

Risk 4: Normal Kullanıcı Deneyimi

DevTools açmayan kullanıcılar hiçbir şey fark etmez, performans etkisi minimal (500ms interval).

📋 Uygulama Adımları (Sıralı)

1

DevTools Detector JS Dosyası Oluştur

public/themes/muzibu/js/devtools-guard.js

4 detection yöntemi + whitelist kontrolü + logout fonksiyonu

2

Warning Modal Component Oluştur

resources/views/components/muzibu/devtools-warning-modal.blade.php

Kırmızı ekran + uyarı + geri sayım + IP gösterme

3

Layout'a Entegre Et

resources/views/themes/muzibu/layouts/app.blade.php

Script import + modal component include (footer'dan önce)

4

Admin Whitelist Token Ekle

Backend'de admin login olunca LocalStorage'a token yazılacak

Login controller veya middleware'de yapılacak

5

Test Et

Normal kullanıcı + Admin + DevTools açık/kapalı senaryoları

6

Production'a Al

Cache temizle, build al, canlıya deploy

🧪 Test Senaryoları

Senaryo 1: Normal Kullanıcı (DevTools Kapalı)

Adım: Siteyi aç, müzik dinle, DevTools açma

Beklenen: Hiçbir şey olmaz, normal kullanım

Senaryo 2: Normal Kullanıcı (DevTools Açar)

Adım: Siteyi aç, F12 bas

Beklenen: Kırmızı ekran, uyarı, 3 saniye sonra logout

Senaryo 3: Admin (DevTools Açar)

Adım: Admin login ol, F12 bas

Beklenen: Whitelist token varsa bypass, DevTools kullanılabilir

Senaryo 4: Logout Sonrası Tekrar Giriş

Adım: DevTools açık logout ol, tekrar login ol

Beklenen: DevTools hala açıksa yine logout (sonsuz döngü)

➕ Ekstra Özellikler (Opsiyonel)

1. Console Flood (Kirletme)

Console'a sürekli mesaj yazdırarak Network tab'ını gizler

Performans etkisi olabilir, ama "arkadaşları" daha çok şaşırtır

2. IP Logging (Backend)

DevTools açanların IP'sini veritabanına kaydet (admin panelde göster)

"Kim denedi?" sorusunu cevaplar

3. Screenshot Gönderme

DevTools açan kullanıcının ekran görüntüsünü Discord/Telegram'a gönder

Eğlenceli ama karmaşık, gerekli mi tartışılır

🎯 Sonuç ve Öneriler

✅ Yapılacaklar Özeti

  • DevTools detector JS dosyası
  • Warning modal component
  • Layout entegrasyonu
  • Admin whitelist sistemi
  • Test + deploy

💡 Tavsiyeler

  • İlk 1 hafta test modunda çalıştır (logout yerine sadece uyarı)
  • Admin hesaplarında mutlaka whitelist token olsun
  • False positive için kullanıcı feedback sistemi ekle
  • %100 koruma olmaz, ama "laf edenleri" susturur

🎉 Başarı Kriteri:

Arkadaşlar F12 bastığında ekran kararır, 3 saniye sonra logout olur. "Şarkıyı indirebiliyoruz" diyemezler, çünkü DevTools açamadan atılırlar.