From bf28d81d1311d5e0ffcc430e89e5f27aadeff83f Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Fri, 22 May 2026 19:35:51 +0200 Subject: [PATCH] =?UTF-8?q?chore(debug):=20Redirect-Test-Karte=20=E2=80=94?= =?UTF-8?q?=20Layer-1-Bypass=20reproduzieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neue RedirectTestCard im Debug-Screen mit zwei Buttons: - Kontrolle: tipico.de direkt öffnen - Test: httpbin-302-Redirect → tipico.de Spielt den Casino-Mail-Fall nach (erlaubter Zwischen-Host → 302 → blockierte Domain), um zu prüfen ob der DNS-Filter die Zieldomain auch nach einem Redirect noch sinkholet. Frontend-only. Co-Authored-By: Claude Opus 4.7 --- apps/rebreak-native/app/debug.tsx | 122 ++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/apps/rebreak-native/app/debug.tsx b/apps/rebreak-native/app/debug.tsx index 596ca06..3c55b96 100644 --- a/apps/rebreak-native/app/debug.tsx +++ b/apps/rebreak-native/app/debug.tsx @@ -7,6 +7,7 @@ import { TouchableOpacity, Alert, Clipboard, + Linking, Platform, } from 'react-native'; import { SafeAreaView } from 'react-native-safe-area-context'; @@ -129,6 +130,8 @@ export default function DebugScreen() { {Platform.OS === 'ios' ? : null} + + + Alert.alert('Fehler', String(e?.message ?? e)), + ); + } + + function Row({ + icon, + label, + onPress, + }: { + icon: keyof typeof Ionicons.glyphMap; + label: string; + onPress: () => void; + }) { + return ( + + + + {label} + + + + ); + } + + return ( + + + + + + + Redirect-Test (Layer 1) + + + + + Reproduziert den Casino-Mail-Fall: erlaubter Zwischen-Host → 302-Redirect + → blockierte Domain (tipico.de). Beide tippen, dann oben den Protection + Log vergleichen — kommt ein „BLOCKED: tipico.de"? + + + open('https://' + BLOCKED)} + /> + open(redirectUrl)} + /> + + ); +} + // ─── Realtime Status Card ────────────────────────────────────────────────── function RealtimeStatusCard() {