Wybber Güvenlik ve Moderasyon Politikası (Safety Policy)

Son güncelleme: 2026-10-02

Bu belge, Wybber'ın kullanıcı güvenliği konusunda bugün gerçekte ne yaptığını anlatır; henüz var olmayan bir özelliği vaat etmez. Nihai hukuki onay şirket avukatına aittir. Bu belgenin İngilizce karşılığı safety-policy.en.md'dir; Türkçe metin esastır, İngilizce metin anlam olarak birebir aynı olacak şekilde yazılmıştır.

1. Kimlik ve Yaş

2. Profil Fotoğrafı Doğrulama — "Canlılık doğrulandı" Rozeti

3. Bildirme (Şikayet Et) ve Engelleme (Engelle)

Uygulamadaki yol. Karşı tarafı bildirmek veya engellemek için, açık bir sohbetin üst çubuğundaki "Şikayet Et" ve "Engelle" düğmelerini kullanırsınız (mobile-app/src/screens/HumanChatScreen.tsx; "Şikayet Et" tam akışı mobile-app/src/screens/ReportBlockScreen.tsx açar). Bu düğmeler yalnızca bir eşleşme sohbete açıldıktan sonra erişilebilir; Wybber görüşmesi (müzakere) sırasında ayrı bir şikayet/engel ekranı yoktur. Ayarlar'da bir şikayet ekranı yoktur; Ayarlar → Engellenen kullanıcılar, engellediğiniz kişileri listeler ve engeli kaldırmanıza izin verir (BlockedUsersScreen.tsx). Bu belgenin geri kalanı, arka planda ne olduğunu anlatır (backend POST /community-safety/report — backend/app/api/community_safety_v1.py; uygulama tarafı mobile-app/src/services/CommunitySafetyGuardianService.ts).

Rapor akışı — uçtan uca ne olur:

  1. Kullanıcı kategori seçer: harassment (taciz), spam, fake_profile (sahte profil), inappropriate_content (uygunsuz içerik), scam (dolandırıcılık), violence (şiddet), other (diğer) — bu yedi kategori dışında bir değer backend tarafından reddedilir (community_safety_v1.py::_ALLOWED_REPORT_CATEGORIES). Şiddet, dolandırıcılık ve taciz kategorileri tek dokunuşla gönderilir ve şikayet edilen kişi aynı anda otomatik olarak engellenir; diğer kategoriler ikinci bir onay adımı ister ve kişiyi otomatik engellemez (ReportBlockScreen.tsx, CommunitySafetyGuardianService.ts::reportUser).
  2. Cihaz, bildirilen kişinin kimliğini yalnızca SHA-256(DID) olarak gönderir. Bildirenin kimliği her zaman sunucuda, kendi JWT'sinden türetilen SHA-256(DID) olarak belirlenir — istemcinin gönderdiği "reporter" alanı kasıtlı olarak yok sayılır, böylece bir kullanıcı başka birini raportör gibi göstererek çerçeveleyemez (community_safety_v1.py::submit_report).
  3. Backend, raporu abuse_reports tablosuna kalıcı olarak yazar: raportör hash'i, bildirilen hash'i, kategori, (varsa) kanıt hash'i, durum (pending), oluşturulma zamanı. Serbest metin bir açıklama alanı bu uç noktadan hiçbir zaman doldurulmaz — AbuseReport.description kolonu şema olarak vardır ama üretimde bağlı tek yazıcı (submit_report) bunu her zaman boş bırakır; rapor tamamen meta-only'dir. Bugün uygulama rapora kanıt (ekran görüntüsü/mesaj metni) eklemediği için kanıt hash'i alanı da fiilen boştur; içerik/kanıt sunucuya hiç gitmez (kanıt: backend/app/models/__init__.py::AbuseReport, community_safety_v1.py::submit_report).
  4. İnternet yoksa veya sunucu yanıt vermezse rapor cihazda sıraya alınır ve uygulama bir sonraki açılışta/öne gelişinde yeniden dener (CommunitySafetyGuardianService.ts::flushPendingReports); sunucuya ulaşana kadar abuse_reports tablosunda (ve dolayısıyla veri dışa aktarımınızda) görünmez.

Kendi raporlarınızı görmek. Uygulamada ayrı bir "rapor geçmişi" ekranı yoktur. Gönderdiğiniz raporlara, Ayarlar → Gizlilik → "Verilerim" ile indirdiğiniz veri dosyasından (wybber-data-<tarih>.json) ulaşabilirsiniz: dosyanın server bölümündeki abuse_reports_filed_by_me listesi, sizin gönderdiğiniz her rapor için bildirilen kişinin hash'lenmiş kimliğini, kategoriyi, kanıt hash'ini, durumu ve zaman damgasını içerir (GET /api/users/me/export; saatte bir kez indirilebilir). Bu liste bir isim göstermez (kimlik hash'lidir) ve bir raporun sonucunu da göstermez: durum alanı bugün pending olarak yazılır ve uygulamada bu alanı güncelleyen bir ekran ya da uç nokta yoktur. Hakkınızda yapılan bildirimler bu dosyaya dahil edilmez — bu, bildirenin korunması için bilinçli bir sınırdır (ayrıntı için Gizlilik Politikası §6).

Kim inceler, ne kadar sürede: Bu noktada dürüst olmak gerekir. Bir rapor abuse_reports tablosuna pending olarak yazılır; otomatik bir e-posta, destek kutusuna düşen bir kayıt, moderasyon paneli veya kuyruk yoktur — uygulamada bu tabloyu okuyup bir kişiye bildiren bir bileşen bulunmaz. Raporlar, yalnızca sunucu veritabanına erişimi olan Wybber operatörü tarafından o tabloyu elle sorgulayarak incelenebilir. Bu nedenle bir inceleme süresi taahhüdü vermiyoruz ve her raporun bir insan tarafından incelendiğini de söylemiyoruz. Acil tehlike için yerel acil yardım hatlarını arayın (bkz. §6); acil müdahale için de şikayet kanalına güvenmeyin. Rapor dışında bizimle iletişim: support@wybber.com.

Engelleme (Block) semantiği:

4. Otomatik Politika Denetimi (Guardian) — cihaz üzerinde

5. Sohbetlere Sunucu Erişimi Yoktur — Kolluk Kuvveti Talepleri İçin Anlamı

6. Buluşma Güvenliği — Kullanıcı Tavsiyeleri

Uygulama bu tavsiyeleri bir eşleşme sohbete açıldığında otomatik olarak göstermez; bunlar bu belgedeki genel tavsiyelerdir:

7. Kapsam ve Yöntem Notu

Bu belge, aşağıdaki kod yollarının doğrudan okunmasıyla doğrulanmıştır: backend/app/api/community_safety_v1.py (mounted, gerçek rapor yazıcı), backend/app/api/blocks.py, backend/app/api/matching.py (purge_mutual_state_for_block, _is_blocked_pair), backend/app/models/__init__.py (AbuseReport, Block, Conversation), backend/app/api/users.py (delete_me/export_my_data), mobile-app/src/screens/{HumanChatScreen,ReportBlockScreen,BlockedUsersScreen,SettingsScreen}.tsx, mobile-app/src/services/{FaceVerificationService,faceBadgeClaim,GuardianPolicyEngine,CommunitySafetyGuardianService,HumanChatService,GDPRDataSubjectRightsService}.ts, memory-bank/Features/Face-Verification.md. Not edilen bir eski/alternatif rapor uç noktası, backend/app/api/trust_safety.py, üretimde mount edilmemiştir (_INTERNAL_OPS_ROUTERS) — bu belge yalnızca gerçekten canlı olan community-safety/report akışını anlatır.

İlgili Belgeler