chahinebrini 6cd3a78aaf feat(protection): iOS Layer-2 webContent-Filter (ManagedSettings) — MVP-Plumbing
WebKit-interner Content-Filter via ManagedSettingsStore().webContent als
stilles Sicherheitsnetz. Blockt eine kuratierte, laenderabhaengige Top-
Gambling-Domain-Liste plus systemseitig Adult-Content (.auto-Variante).
Braucht NUR Family Controls — kein MDM, kein neues Entitlement, keine
Config-Plugin-Aenderung.

- gambling-domains.json: gebuendelte Starter-Liste (DE/GB/FR), je <=50
  Domains (Apple-Hartlimit), klar als STARTER markiert. Via Podspec-
  resource_bundles ins App-Bundle gepackt.
- applyWebContentFilter / clearWebContentFilter: zwei native AsyncFunctions.
  Land via Locale.current.region, iOS 16+ gegated, FC-Auth vorausgesetzt.
- JS-Bridge (Module-Decl, types, web-stub, lib/protection.ts) + Actions im
  useProtectionState-Hook. getDeviceState liefert webContentFilter-Layer mit.

KEINE Auto-Trigger-Logik — Layer 2 ist vorerst nur explizit aufrufbare
Capability. Siehe TODO(layer2-gating) im Swift-Modul und lib/protection.ts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 16:07:44 +02:00

96 lines
2.2 KiB
JSON

{
"_comment": "STARTER — kuratierte Starter-Liste der bekanntesten Gambling-Domains pro Land. NICHT die Endliste. Die finale, traffic-rangbasierte Kuratierung (via Similarweb-Ranking / GGL-Whitelist für DE) ist noch offen. Apple-Hartlimit: max. 50 Domains pro Land — diese Grenze darf NIE überschritten werden. Schlüssel = ISO-3166-1-alpha-2-Ländercode (Locale.current.region). Werte = registrierbare Domains ohne Schema/Subdomain (ManagedSettings WebDomain matched die Domain inkl. Subdomains).",
"_meta": {
"version": 1,
"updatedAt": "2026-05-21",
"maxDomainsPerCountry": 50,
"status": "starter"
},
"DE": [
"tipico.de",
"tipico.com",
"bwin.de",
"bwin.com",
"interwetten.de",
"interwetten.com",
"betano.de",
"bet-at-home.com",
"sportwetten.de",
"merkur-bets.de",
"merkurbets.de",
"happybet.de",
"neobet.de",
"winamax.de",
"betway.de",
"admiralbet.de",
"oddset.de",
"lottohelden.de",
"lotto.de",
"lotto24.de",
"jackpot.de",
"drueckglueck.de",
"loewen-play.de",
"merkur24.com",
"casino.de",
"casinos.de",
"betsson.de",
"leovegas.de",
"lapalingo.com",
"sunmaker.de"
],
"GB": [
"bet365.com",
"williamhill.com",
"skybet.com",
"skyvegas.com",
"ladbrokes.com",
"coral.co.uk",
"paddypower.com",
"betfair.com",
"betfred.com",
"unibet.co.uk",
"888.com",
"888sport.com",
"888casino.com",
"betway.com",
"virginbet.com",
"boylesports.com",
"betvictor.com",
"10bet.com",
"mrgreen.com",
"casumo.com",
"leovegas.com",
"grosvenorcasinos.com",
"mecca-bingo.com",
"gala-bingo.com",
"tombola.co.uk",
"lottoland.co.uk",
"national-lottery.co.uk",
"kwikfit-pools.co.uk",
"parimatch.co.uk",
"smarkets.com"
],
"FR": [
"winamax.fr",
"betclic.fr",
"betclic.com",
"pmu.fr",
"unibet.fr",
"parionssport.fdj.fr",
"fdj.fr",
"zebet.fr",
"vbet.fr",
"netbet.fr",
"bwin.fr",
"genybet.fr",
"zeturf.fr",
"feeling-bet.fr",
"barrierebet.fr",
"pokerstars.fr",
"partypoker.fr",
"lucien-barriere.com",
"casinobarriere.com",
"circus.be"
]
}