💡 Basit Anlatim (Herkes Icin)
Ne Yapmak Istiyoruz?
Muzibu'da bir hesap sadece bir kisi tarafindan kullanilmali. Eger bir kullanici hesabini arkadas/aile ile paylasir ve ayni anda birden fazla yerden muzik dinlenirse, bunu tespit edip kullaniciyi uyaracagiz.
Nasil Anlayacagiz?
Ornek: Ahmet hesabiyla Istanbul'dan muzik dinliyor. Ayni anda Ankara'dan da Ahmet hesabiyla baska bir sarki dinleniyorsa → bu supheli!
- • Ayni anda farkli IP'lerden dinleme
- • Bir sarki bitmeden baska sarki baslamasi
- • Farkli sehir/cihazlardan es zamanli erisim
- • Sabah evden, aksam isten dinleme
- • Farkli zamanlarda farkli cihaz kullanimi
- • Tek seferde tek sarki dinleme
Ne Olacak?
- Sistem supheli aktiviteleri tespit edecek
- Admin panelinde "Supheli Kullanicilar" listesi gorunecek
- Supheli kullaniciya siteye girdiginde uyari cikacak
- Kullanici kurallari okuyup "Anladim" diyecek
- Devam ederse kisitlama uygulanabilir
🎯 Problem Tanimi
Sifre Paylasimi
Kullanici hesap bilgilerini baskasina verir, birden fazla kisi ayni hesabi kullanir.
Es Zamanli Dinleme
Ayni hesapla ayni anda birden fazla sarki stream edilir.
Uyelik Paylasimi
Premium uyelik birden fazla kisi tarafindan kullanilir.
🔧 Teknik Detaylar - Tespit Algoritmasi
1 Cakisan Dinleme Tespiti
Mantik: Bir kullanicinin sarki dinleme kayitlarina bakariz. Eger iki farkli sarki kaydi birbirine cok yakinsa (ornegin 30 saniye icinde) ve farkli IP/cihazlardan geliyorsa → supheli.
-- Pseudo SQL
SELECT user_id, COUNT(*) as overlap_count
FROM muzibu_song_plays p1
JOIN muzibu_song_plays p2
WHERE p1.user_id = p2.user_id
AND p1.id != p2.id
AND ABS(TIMESTAMPDIFF(SECOND, p1.created_at, p2.created_at)) < 60
AND p1.ip_address != p2.ip_address
- • Zaman Esligi: 60 saniye (ayarlanabilir)
- • Minimum Cakisma: 3+ kez (tek seferlik hata olabilir)
- • Farkli IP Zorunlu: Evet (ayni IP'den birden fazla tab normal olabilir)
2 Asiri IP Cesitliligi
Mantik: Bir kullanici kisa surede cok fazla farkli IP'den baglaniyorsa supheli.
SELECT user_id, COUNT(DISTINCT ip_address) as unique_ips
FROM muzibu_song_plays
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY user_id
HAVING unique_ips > 5
- • Normal: 1-3 IP/gun (ev, is, mobil)
- • Dikkat: 4-6 IP/gun (uyari)
- • Supheli: 7+ IP/gun (aksiyona alinir)
3 Cografi Tutarsizlik (Opsiyonel - Gelecek)
Mantik: IP'den konum bilgisi alinir. Kisa surede fiziksel olarak imkansiz mesafeler (ornegin 1 saatte Istanbul'dan Ankara'ya) supheli.
🗄️ Veritabani Yapisi
Tablo: muzibu_abuse_reports
Sistem tarafindan tespit edilen supheli aktiviteler
| Alan | Tip | Aciklama |
|---|---|---|
| id | bigint | Primary key |
| user_id | bigint FK | Supheli kullanici |
| abuse_type | enum | 'concurrent_streaming', 'ip_diversity', 'geo_impossible' |
| severity | enum | 'low', 'medium', 'high', 'critical' |
| evidence | json | Detayli kanit (IP'ler, zamanlar, cihazlar) |
| analysis_period | json | {start_date, end_date} |
| overlap_count | int | Toplam cakisma sayisi |
| status | enum | 'pending', 'warning_sent', 'acknowledged', 'restricted', 'resolved' |
| created_at | timestamp | Tespit zamani |
Tablo: muzibu_abuse_acknowledgments
Kullanicilarin "Anladim" beyanlar
| Alan | Tip | Aciklama |
|---|---|---|
| id | bigint | Primary key |
| abuse_report_id | bigint FK | Ilgili rapor |
| user_id | bigint FK | Kullanici |
| full_name | varchar(255) | Kullanicinin yazdigi isim soyisim |
| confirmation_text | varchar(255) | "Anladim kabul ediyorum" metni |
| ip_address | varchar(45) | Onay anindaki IP |
| user_agent | text | Tarayici bilgisi |
| acknowledged_at | timestamp | Onay zamani |
🖥️ Admin Paneli Akisi
Analiz Baslat Butonu
Admin /admin/muzibu sayfasinda "Kotuye Kullanim Analizi" butonuna tiklar.
Secenekler:
- • Son X gun (dropdown: 7, 10, 14, 30)
- • Tarih araligi sec (date picker)
Analiz Calistir
Sistem muzibu_song_plays tablosunu tarar ve supheli pattern'leri bulur.
Cikti:
- • Supheli kullanici listesi
- • Her biri icin: cakisma sayisi, farkli IP sayisi, ciddiyet skoru
Sonuc Tablosu
Admin her kullanici icin detaylari gorebilir ve aksiyon alabilir.
| Kullanici | Cakisma | IP Sayisi | Ciddiyet | Aksiyon |
|---|---|---|---|---|
| ahmet@email.com | 12 | 8 | Yuksek | Uyari Gonder |
Uyari Gonderme
Admin "Uyari Gonder" dediginde kullanicinin durumu warning_sent olur.
Kullanici bir sonraki girisinde uyari ekranini gorecek.
⚠️ Frontend Uyari Akisi
Uyari Ekrani Icerigi
Hesabinizda Supheli Aktivite Tespit Edildi
Sistemimiz hesabinizin birden fazla lokasyon veya cihazdan es zamanli olarak kullanildigini tespit etmistir.
Muzibu kullanim kosullarina gore:
- Her hesap sadece bir kisi tarafindan kullanilabilir
- Hesap paylasimi yasaktir
- Ayni anda birden fazla cihazdan muzik dinlemek yasaktir
Teknik Uygulama
- • Middleware kontrolu: Her sayfa yuklemesinde kullanicinin pending uyarisi var mi kontrol edilir
- • Modal veya tam sayfa redirect: Kullanici onaylayana kadar siteyi kullanamaz
- • Form validation: Isim bos olamaz, onay metni tam eslesmeli ("Anladim ve kabul ediyorum")
- • IP ve zaman kaydedilir: Hukuki gecerlilik icin
🚫 Kisitlama Alternatifleri
Kullanici uyariyi kabul ettikten sonra ihlale devam ederse ne yapilacak?
Birinci Uyari
- • Modal uyari goster
- • Isim + onay al
- • Normal kullanima devam
Ikinci Uyari
- • Ses kalitesi dusurme (128kbps)
- • Reklam gosterme (varsa)
- • Gunluk dinleme limiti (2 saat)
Ucuncu Uyari
- • Gecici hesap askiya alma (24-72 saat)
- • Sadece 1 cihaz izni (diger cihazlar otomatik cikis)
- • Admin incelemesi zorunlu
Kalici Ban
- • Hesap kalici olarak askiya alinir
- • Premium uyelik iptal (iade yok)
- • Ayni IP/cihazdan yeni kayit engeli
Oneri: Kademeli Yaklasim
Ilk etapta sadece Seviye 1 (uyari + onay) uygulayalim. Sistemin nasil calistigi ve kullanici tepkisi goruldukten sonra diger seviyeleri aktif edebiliriz.
📋 Uygulama Adimlari
muzibu_abuse_reports ve muzibu_abuse_acknowledgments tablolarini olustur
Analiz algoritmalarini iceren servis sinifi
Analiz baslat, sonuc goster, aksiyon al UI
Kullanici uyari ekrani ve onay formu
Her sayfa yuklemesinde abuse status kontrolu
Esik degerlerini gercek verilerle test et ve ayarla
❓ Karar Verilmesi Gereken Noktalar
1. Esik Degerleri
- • Kac saniye icinde cakisma "supheli" sayilsin? (30s? 60s? 120s?)
- • Minimum kac cakisma gereksin? (3? 5? 10?)
- • Gunde kac farkli IP "normal"? (3? 5?)
2. Uyari Metni
Kullaniciya gosterilecek uyari mesajinin tam metni ne olsun?
3. Onay Sonrasi Sifirlanma
Kullanici "Anladim" dedikten sonra supheli sayac sifirlansin mi? Yoksa birikimli mi olsun?
4. Otomatik vs Manuel
Analiz otomatik calissin mi (cron)? Yoksa sadece admin baslatsin mi?