{
    "id": "20260624-164043-share.djswiss.ch-ead396c4",
    "type": "scan_report",
    "created_at": "2026-06-24T16:40:43+00:00",
    "scan": {
        "tool": "DJSWISS Safe Site Checker Pro",
        "version": "3.0-sales-ready",
        "mode": "defensive_passive_authorized",
        "started_at": "2026-06-24T16:40:42+00:00",
        "finished_at": "2026-06-24T16:40:43+00:00",
        "target": {
            "input_url": "https://share.djswiss.ch/",
            "normalized_url": "https://share.djswiss.ch/",
            "effective_url": "https://share.djswiss.ch/login.php",
            "host": "share.djswiss.ch",
            "http_status": 200
        },
        "score": {
            "points": 79,
            "grade": "B"
        },
        "summary": {
            "critical": 0,
            "high": 1,
            "medium": 0,
            "low": 2,
            "info": 7
        },
        "meta": {
            "dns_targets": [
                "148.251.1.89"
            ],
            "http_redirect_effective_url": "https://share.djswiss.ch/login.php",
            "tls": {
                "subject": "share.djswiss.ch",
                "issuer": "Let's Encrypt",
                "valid_to": "2026-08-12T11:28:12+00:00",
                "days_left": 48
            },
            "dns": {
                "txt": [
                    "v=spf1 mx ip4:148.251.1.89 ip4:148.251.1.79 -all"
                ],
                "dmarc": "v=DMARC1; p=quarantine; rua=mailto:postmaster@djswiss.ch; ruf=mailto:postmaster@djswiss.ch; fo=1",
                "mx": [],
                "caa_count": 0
            }
        },
        "findings": [
            {
                "severity": "low",
                "category": "Niedrig",
                "title": "CSP erlaubt unsafe-inline",
                "evidence": "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self'; img-src 'self' data:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'",
                "fix": "Inline-Skripte reduzieren; Nonce/Hash-Strategie verwenden."
            },
            {
                "severity": "low",
                "category": "Niedrig",
                "title": "X-Content-Type-Options fehlt",
                "evidence": "nosniff nicht gesetzt",
                "fix": "Header setzen: X-Content-Type-Options: nosniff"
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "Cross-Origin-Opener-Policy fehlt",
                "evidence": "COOP Header nicht gefunden",
                "fix": "Optional: Cross-Origin-Opener-Policy: same-origin für isolierte Browser-Kontexte prüfen."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "Technologie-Information sichtbar: server",
                "evidence": "Apache",
                "fix": "Versionen und Framework-Banner soweit möglich ausblenden; wichtiger: Systeme aktuell halten."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "Keine MX Records gefunden",
                "evidence": "djswiss.ch",
                "fix": "Falls die Domain E-Mail empfängt, MX Records prüfen."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "CAA Record fehlt",
                "evidence": "djswiss.ch",
                "fix": "Optional CAA setzen, um Zertifizierungsstellen einzuschränken."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "security.txt fehlt",
                "evidence": "https://share.djswiss.ch/.well-known/security.txt nicht gefunden",
                "fix": "Optional security.txt veröffentlichen, damit Sicherheitsmeldungen korrekt ankommen."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "robots.txt fehlt",
                "evidence": "https://share.djswiss.ch/robots.txt nicht gefunden",
                "fix": "Optional robots.txt veröffentlichen, besonders wenn SEO relevant ist."
            },
            {
                "severity": "info",
                "category": "Info",
                "title": "sitemap.xml fehlt",
                "evidence": "https://share.djswiss.ch/sitemap.xml nicht gefunden",
                "fix": "Optional sitemap.xml veröffentlichen, wenn SEO relevant ist."
            },
            {
                "severity": "high",
                "category": "Hoch",
                "title": "Apache server-status öffentlich erreichbar",
                "evidence": "https://share.djswiss.ch/server-status liefert HTTP 200",
                "fix": "Datei sofort entfernen oder per Webserver blockieren; Secrets rotieren, falls Inhalte öffentlich waren."
            }
        ],
        "recommendations": [
            "Hohe Risiken kurzfristig beheben und danach erneut scannen.",
            "Security-Header und exponierte Dateien priorisieren."
        ],
        "sales_hint": {
            "package": "Emergency Fix / Security Hardening",
            "suggested_price_chf": "590–1’500+",
            "reason": "Akute oder deutliche Risiken vorhanden."
        },
        "note": "This tool identifies visible weaknesses and safe fix guidance. It does not exploit, bypass authentication, brute-force, or provide intrusion steps."
    },
    "ai": null,
    "report_text": null
}