Alınan Kararlar
KARAR-1 Ping-Pong Pattern'i KALACAK
İki kişi aynı hesabı paylaşıp eş zamanlı dinlediğinde, play kayıtları zamana göre sıralandığında
IP adresleri 1→2→1→2→1→2 şeklinde değişiyor. Bu Ping-Pong pattern'inin
tam olarak aradığı A→B→A döngüsü.
3 pattern ile devam: Ping-Pong + Concurrent Different + Split Stream
A→B→A döngüsü (IP, browser, platform)
Sırayla dinleyenleri yakalar
Aynı anda farklı fingerprint
Eş zamanlı dinleyenleri yakalar
Aynı fingerprint + overlap
1 PC → 2 hoparlör yakalar
KARAR-2 Kademe Sistemi
Uyarı Gönder Butonu
- Kullanıcı her sayfada uyarı metni + onay formu görür
- Onaylayana kadar site kullanılamaz
- 3 gün içinde onaylamazsa → player çalışmaz
- Onayladıktan sonra normal kullanıma döner
Yasakla Butonu
- Direkt erişim engeli (süreli veya kalıcı)
- Player çalışmaz, site kullanılamaz
- "Müşteri hizmetleriyle iletişime geçin" mesajı
- Abonelik devam eder ama erişim yok (sadece engel)
KARAR-3 Diğer Kararlar
Uyarı / Yasaklama Sistemi (Yeni Özellik)
Kullanıcı Deneyimi
EKRAN-1 Uyarı Ekranı (Tam Sayfa Engel)
Suistimal tespit edilmiştir.
Kalan süre: 2 gün 14 saat 23 dakika
muzibu.com Premium üyeliğinizde, kullanım şartlarına aykırı davranış tespit edilmiştir. Premium üyelik Ticari Uzaktan Hizmet ve Abonelik Sözleşmesi'nde de belirtildiği gibi kişiye özeldir ve aynı anda yalnızca tek bir kullanım içindir.
Bu kapsamda aşağıdaki eylemler yasaktır:
- Hesap/şifre bilgilerinin üçüncü kişilerle paylaşılması,
- Aynı hesabın eşzamanlı olarak birden fazla cihazda veya farklı kişiler tarafından kullanılması,
- Üyeliğin devredilmesi, kiralanması ya da ortak kullanım amacıyla paylaşılması.
Bu tespit, hizmet güvenliği ve kullanım bütünlüğü kapsamında değerlendirilir. Aykırı kullanımın devamı halinde üyeliğiniz hakkında kısıtlama, geçici durdurma veya fesih dahil gerekli işlemler uygulanabilir.
Yetkisiz kullanım gerçekleştirildiği takdirde, kullanım belgesi yalnızca abonelik oluşturulan kişi özelinde düzenlendiğinden, olası bir denetim halinde yetkisiz kullanımda bulunan taraflara herhangi bir koruma sağlamayacaktır.
Beyan ve Onay
Aşağıdaki beyanı okuduğumu, anladığımı ve kabul ettiğimi; Premium üyeliğin kişiye özel olduğunu, şifre paylaşımı ve eşzamanlı çoklu cihaz kullanımının yasak olduğunu; aykırı kullanımın devamı halinde üyeliğime kısıtlama uygulanabileceğine ilişkin ilk uyarının gerçekleştirilmiş olduğunu kabul ederim.
Devam etmek için aşağıdaki ifadeyi ELLE yazınız (kopyala-yapıştır kabul edilmez):
"Okudum, anladım, onaylıyorum."
Bu ekran her route'un en tepesinde çıkar (anasayfa dahil)
Kopyala-yapıştır engeli: paste event engellenecek, typing speed kontrol edilecek
3 gün içinde onaylanmazsa → player çalışmaz
EKRAN-2 Yasaklama Ekranı (Erişim Engeli)
Hesabınız Geçici Olarak Askıya Alınmıştır
Kullanım şartlarına aykırı davranış nedeniyle hesabınız 3 gün / 15 gün / süresiz süreyle askıya alınmıştır.
Detaylı bilgi ve itiraz için lütfen müşteri hizmetleriyle iletişime geçin.
destek@muzibu.com
0850 XXX XX XX
Kalan süre: 2 gün 14 saat (kalıcı yasaklarda gösterilmez)
Admin Deneyimi
Rapor Detay Sayfasında
Uyarılı/Yasaklı Kullanıcılar
Yeni route: /admin/muzibu/abuse-reports/sanctions
- Tüm uyarılı/yasaklı kullanıcılar listesi
- Her kullanıcının altında tüm suistimal günleri
- Mevcut kademe (1. uyarı, 1. yasak, 2. yasak...)
- Onay durumu, kalan süre
- Onay formunu doldurduysa: isim, metin, tarih
Akış Diyagramı
Suistimal Tespit → Admin inceledi
├── Temiz İşaretle → Bitti
├── Uyarı Gönder → Kullanıcı uyarı ekranı görür
│ ├── 3 gün içinde onayladı → Normal kullanım (izleme sürer)
│ │ ├── Tekrar suistimal → Admin: Yasakla (1. = 3 gün)
│ │ │ ├── Süre bitti → Normal (izleme)
│ │ │ │ └── Tekrar → Yasakla (2. = 15 gün)
│ │ │ │ └── Tekrar → Yasakla (kalıcı)
│ │ └── Suistimal yok → Temiz
│ └── 3 gün geçti, onaylamadı → Player çalışmaz
│ └── Onayladı → Normal (player açılır)
└── Yasakla → Kademeye göre süre belirlenir
└── İletişim ekranı gösterilir
Onay Doğrulama Kuralları
Kullanıcının yazması gereken: "Okudum, anladım, onaylıyorum."
Kabul Edilir
okudum anladim onayliyorum— virgül ve Türkçe karakter önemsizOKUDUM ANLADIM ONAYLIYORUM— büyük/küçük harf önemsizOkudum, anladım, onaylıyorum.— tam doğruokudum , anladım,onaylıyorum— boşluklar önemsiz
Reddedilir
okudum— eksik kelimelertamam— farklı metincopy-paste— yapıştırma engelli
Doğrulama algoritması:
// Normalize: lowercase, Türkçe karakter → ASCII, virgül/nokta kaldır, trim // "okudum anladim onayliyorum" === normalized_input
Bug Listesi (6 Adet)
Controller'da rapid_skips, high_volume gibi eski key'ler aranıyor. Doğrusu: ping_pong, concurrent_different, split_stream + detected kontrolü
Skor puan ama "8m 20s" gösteriyor. "500 puan" olmalı.
Temiz kullanıcıda bile "3 pattern" yazıyor. Object.values().filter(p => p.detected) olmalı.
device, platform, overlap_start/end, same_browser, same_ip alanları service tarafından üretilmiyor.
Günlük "toplam çakışma" sayısı eksik, grafik boş.
format('d.m.Y H:i') → format('d.m.Y')
Yeni Özellik: Tarama Batch Ayrımı
Her taramaya benzersiz batch ID verilir. Aynı gün birden fazla tarama yapılabilir, sonuçlar karışmaz.
scan_batch_id (UUID) + scan_batch_label + index + unique(user_id, batch_id)
GET /api/batches + list/stats batch filtresi
Batch dropdown + varsayılan son batch
Veritabanı Değişiklikleri (3 Aşamalı Onay Gerekli)
MIG-1 muzibu_abuse_reports tablosuna batch kolonları
| + scan_batch_id | string(36) nullable | UUID |
| + scan_batch_label | string(100) nullable | "Son 7 Gün — 28.02.2026" |
| + index | scan_batch_id | |
| + unique | (user_id, scan_batch_id) |
MIG-2 YENİ TABLO: muzibu_abuse_sanctions (Uyarı/Yasaklama Kayıtları)
| Kolon | Tip | Açıklama |
| id | bigint PK | |
| user_id | bigint FK | Kullanıcı |
| abuse_report_id | bigint nullable FK | Tetikleyen rapor |
| type | enum | warning, ban_3day, ban_15day, ban_permanent |
| level | tinyint | Kaçıncı yaptırım (1, 2, 3, 4) |
| status | enum | active, acknowledged, expired, lifted |
| message | text | Gösterilen uyarı metni |
| sent_by | bigint FK | Gönderen admin |
| sent_at | timestamp | |
| expires_at | timestamp nullable | null = kalıcı |
| player_blocked_at | timestamp nullable | Player'ın kapandığı an |
| acknowledged_at | timestamp nullable | Onay tarihi |
| consent_name | string(255) nullable | Yazdığı isim |
| consent_text | string(500) nullable | Yazdığı onay metni |
| consent_ip | string(45) nullable | Onay IP'si |
| consent_user_agent | string(500) nullable | Onay cihazı |
| admin_notes | text nullable | Admin notu |
| created_at | timestamp | |
| updated_at | timestamp |
Değişecek / Yeni Dosyalar
Güncellenecek (8)
AbuseReport.phpModelAbuseDetectionService.phpServiceScanUserForAbuseJob.phpJobAbuseReportController.phpControllerroutes/admin.phpRoutesindex.blade.phpListeshow.blade.phpDetayplayer-core.jsPlayer (sanction check)Yeni Oluşturulacak (6+)
migration: add_scan_batchMIG-1migration: create_sanctionsMIG-2AbuseSanction.phpModelAbuseSanctionService.phpServiceCheckAbuseSanction.phpMiddlewaresanctions.blade.phpAdmin listeabuse-warning.blade.phpFrontend uyarıabuse-banned.blade.phpFrontend yasak