@aegis-scan/skills 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ATTRIBUTION.md +93 -0
- package/package.json +1 -1
- package/sbom.cdx.json +1 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
license: MIT (snippet)
|
|
3
|
+
provider: Nuxt 3 / Vue 3 (Open-Source)
|
|
4
|
+
last-checked: 2026-05-05
|
|
5
|
+
purpose: Nuxt 3 SSR vs Vue-only SPA Hydration-Pattern fuer DSGVO-konforme Tracker-Initialisierung.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Nuxt vs Vue-only — Hydration-Pattern (Tracker-Lazy-Init)
|
|
9
|
+
|
|
10
|
+
## Trigger / Detection
|
|
11
|
+
|
|
12
|
+
Nuxt 3 Repo:
|
|
13
|
+
- `nuxt.config.ts` mit `ssr: true` (Default)
|
|
14
|
+
- `package.json` enthaelt `nuxt`
|
|
15
|
+
- `composables/`, `plugins/`, `server/` Top-Level Folders
|
|
16
|
+
- `useFetch`, `useState`, `useNuxtApp` in Components
|
|
17
|
+
|
|
18
|
+
Vue-only Repo:
|
|
19
|
+
- `vite.config.ts` + `vue` Dependency (kein nuxt)
|
|
20
|
+
- `index.html` als Entry mit `<div id="app">`
|
|
21
|
+
- `main.ts` mit `createApp`
|
|
22
|
+
|
|
23
|
+
Hydration-Issue: Nuxt rendered HTML serverseitig + hydratiert clientseitig. Tracker-Calls in `setup()` feuern auf BEIDEN Seiten = Daten doppelt + Tracker fuer NICHT-eingewilligte Users serverseitig geladen.
|
|
24
|
+
|
|
25
|
+
## Default-Verhalten (was passiert ohne Konfiguration)
|
|
26
|
+
|
|
27
|
+
Nuxt-Default:
|
|
28
|
+
- `setup()` laeuft auf Server UND Client → fetch-Aufrufe doppelt
|
|
29
|
+
- `process.client` / `import.meta.client` Check fehlt oft → SSR-Crash bei `localStorage`-Access
|
|
30
|
+
- Tracker im Default-Layout `app.vue` laed ueber `<Head>` → vor jeder Banner-Logik
|
|
31
|
+
- Cookies werden vom Server ausgelesen ohne Consent-Check
|
|
32
|
+
|
|
33
|
+
Vue-only:
|
|
34
|
+
- Kein SSR, daher kein Hydration-Problem, ABER kein SEO ohne Pre-Rendering
|
|
35
|
+
- Tracker in `main.ts` startet bevor Banner-Komponente mounted
|
|
36
|
+
|
|
37
|
+
## Compliance-Risiken
|
|
38
|
+
|
|
39
|
+
| Risiko | Norm | Severity | Fix |
|
|
40
|
+
|---|---|---|---|
|
|
41
|
+
| Tracker in Nuxt-Layout `<Head>` | § 25 TDDDG | KRITISCH | `useHead` nur nach `consent:granted` Event |
|
|
42
|
+
| `localStorage` in `setup()` ohne Client-Check | DSGVO Art. 25 | HOCH | `if (import.meta.client)` Guard |
|
|
43
|
+
| Server-Side Cookie-Read ohne Consent | § 25 TDDDG | KRITISCH | `useCookie` mit Consent-Pruefung |
|
|
44
|
+
| Hydration-Mismatch zeigt Banner kurz | UX / Vertrauen | MITTEL | `v-if="mounted"` + `useState('mounted', () => false)` |
|
|
45
|
+
| Drittland-CDN fuer Vue-Vendor-Bundle | Art. 44 DSGVO | HOCH | Self-host Bundle, EU-CDN |
|
|
46
|
+
|
|
47
|
+
## Code-Pattern (sanitized)
|
|
48
|
+
|
|
49
|
+
### Nuxt 3 Pattern
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// File: plugins/consent.client.ts (Pflicht: .client.ts Suffix → nur Client)
|
|
53
|
+
import { defineNuxtPlugin } from '#app';
|
|
54
|
+
|
|
55
|
+
export default defineNuxtPlugin(() => {
|
|
56
|
+
const STORAGE_KEY = 'cookie-consent';
|
|
57
|
+
const raw = localStorage.getItem(STORAGE_KEY);
|
|
58
|
+
if (!raw) return;
|
|
59
|
+
try {
|
|
60
|
+
const consent = JSON.parse(raw);
|
|
61
|
+
if (consent.analytics) {
|
|
62
|
+
// Lazy-Load Tracker-Modul erst hier
|
|
63
|
+
import('~/utils/analytics').then(m => m.init());
|
|
64
|
+
}
|
|
65
|
+
} catch {
|
|
66
|
+
/* ignore */
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```vue
|
|
72
|
+
<!-- File: components/CookieBanner.vue -->
|
|
73
|
+
<script setup lang="ts">
|
|
74
|
+
const mounted = useState('cookie-banner-mounted', () => false);
|
|
75
|
+
const visible = useState('cookie-banner-visible', () => false);
|
|
76
|
+
|
|
77
|
+
onMounted(() => {
|
|
78
|
+
mounted.value = true;
|
|
79
|
+
if (!localStorage.getItem('cookie-consent')) {
|
|
80
|
+
visible.value = true;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
function persist(consent: { analytics: boolean; marketing: boolean }) {
|
|
85
|
+
const final = { necessary: true, ...consent, version: '1.0', timestamp: new Date().toISOString() };
|
|
86
|
+
localStorage.setItem('cookie-consent', JSON.stringify(final));
|
|
87
|
+
visible.value = false;
|
|
88
|
+
if (consent.analytics) import('~/utils/analytics').then(m => m.init());
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<template>
|
|
93
|
+
<ClientOnly>
|
|
94
|
+
<Teleport to="body">
|
|
95
|
+
<aside v-if="mounted && visible" role="dialog" class="cookie-banner">
|
|
96
|
+
<p>Cookie-Hinweis-Text. <NuxtLink to="/datenschutz">Datenschutz</NuxtLink></p>
|
|
97
|
+
<button @click="persist({ analytics: false, marketing: false })">Nur Notwendige</button>
|
|
98
|
+
<button @click="persist({ analytics: true, marketing: true })">Alle akzeptieren</button>
|
|
99
|
+
</aside>
|
|
100
|
+
</Teleport>
|
|
101
|
+
</ClientOnly>
|
|
102
|
+
</template>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// File: nuxt.config.ts
|
|
107
|
+
export default defineNuxtConfig({
|
|
108
|
+
ssr: true,
|
|
109
|
+
app: {
|
|
110
|
+
head: {
|
|
111
|
+
htmlAttrs: { lang: 'de' },
|
|
112
|
+
// KEINE Tracker-Scripts hier — bleiben aussen
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
routeRules: {
|
|
116
|
+
'/api/track/**': { cors: false }, // Same-Origin enforced
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Vue-only Pattern (kein SSR)
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
// File: src/main.ts
|
|
125
|
+
import { createApp } from 'vue';
|
|
126
|
+
import App from './App.vue';
|
|
127
|
+
|
|
128
|
+
// KEIN Tracker-Init hier
|
|
129
|
+
const app = createApp(App);
|
|
130
|
+
|
|
131
|
+
window.addEventListener('consent:granted', async (e: any) => {
|
|
132
|
+
if (e.detail?.analytics) {
|
|
133
|
+
const m = await import('./trackers/analytics');
|
|
134
|
+
m.init();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
app.mount('#app');
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## AVV / DPA
|
|
142
|
+
|
|
143
|
+
Nuxt SSR + Vercel/Netlify Edge:
|
|
144
|
+
- SSR-Function-Region MUSS auf EU gepinnt sein (`vercel.json` `regions: ['fra1']`)
|
|
145
|
+
- AVV mit Hosting-Provider Pflicht
|
|
146
|
+
- Bei Nitro-Self-Host: keine zusaetzliche AVV, aber Hosting-AVV bleibt
|
|
147
|
+
|
|
148
|
+
Vue-only Static:
|
|
149
|
+
- Hosting-AVV
|
|
150
|
+
- Optional: Form-Service / Backend-API (separate AVV)
|
|
151
|
+
|
|
152
|
+
## DSE-Wording-Vorlage
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
### Server-Side Rendering und Hosting
|
|
156
|
+
|
|
157
|
+
Diese Webseite verwendet Server-Side Rendering (SSR) bei Nuxt 3. Initiale
|
|
158
|
+
HTML-Generierung findet auf <placeholder-hosting-provider>-Servern in der
|
|
159
|
+
Region <placeholder-eu-region> statt.
|
|
160
|
+
|
|
161
|
+
**Verarbeitete Daten beim Initial-Render:**
|
|
162
|
+
- IP-Adresse (anonymisiert auf /24 in Server-Logs)
|
|
163
|
+
- User-Agent
|
|
164
|
+
- Sprach-Header (`Accept-Language`)
|
|
165
|
+
- Referrer (ohne Query-String)
|
|
166
|
+
|
|
167
|
+
**Rechtsgrundlage:** Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an
|
|
168
|
+
sicherem Webseitenbetrieb).
|
|
169
|
+
**Speicherdauer Logs:** 14 Tage, danach Loeschung.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Verify-Commands (Live-Probe)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# 1. SSR-HTML enthaelt KEINEN Tracker-Script
|
|
176
|
+
curl -sS https://<placeholder-domain>/ | grep -ic "<script[^>]*analytics\|gtag\|fbq"
|
|
177
|
+
# Erwartung: 0
|
|
178
|
+
|
|
179
|
+
# 2. Banner nicht im initial SSR-HTML (vermeidet Flash)
|
|
180
|
+
curl -sS https://<placeholder-domain>/ | grep -ic "cookie-banner"
|
|
181
|
+
# Erwartung: 0 (wird via ClientOnly nachgeladen)
|
|
182
|
+
|
|
183
|
+
# 3. Region-Check (Nuxt SSR Edge)
|
|
184
|
+
curl -sI https://<placeholder-domain>/ | grep -i "x-vercel-id\|server"
|
|
185
|
+
# Erwartung: fra1 / cdg1 / ams1 etc. (EU-Region)
|
|
186
|
+
|
|
187
|
+
# 4. Hydration ohne Mismatch
|
|
188
|
+
# Browser-Console: kein Vue-Warning "[Vue warn]: Hydration mismatch"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Cross-References
|
|
192
|
+
|
|
193
|
+
- AEGIS-Scanner: `ssr-data-leak-checker.ts`, `tracking-scan.ts`, `region-pinning-checker.ts`
|
|
194
|
+
- Skill-Reference: `references/dsgvo.md` Art. 44 (Drittland), § 25 TDDDG
|
|
195
|
+
- BGH-Rechtsprechung: `references/bgh-urteile.md`
|
|
196
|
+
- EDPB: `references/eu-edpb-guidelines.md` (Schrems II Folgen)
|
|
197
|
+
- Audit-Pattern: `references/audit-patterns.md` Phase 3 (Drittland-Audit)
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
license: MIT (snippet)
|
|
3
|
+
provider: Vue 3 + Pinia (Open-Source)
|
|
4
|
+
last-checked: 2026-05-05
|
|
5
|
+
purpose: Pinia-Store fuer Consent-State + Tracker-Gate Pattern mit Subscriber-Watch.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Vue/Pinia — Tracking-Store (Pattern)
|
|
9
|
+
|
|
10
|
+
## Trigger / Detection
|
|
11
|
+
|
|
12
|
+
Repo enthaelt:
|
|
13
|
+
- `pinia` in `package.json`
|
|
14
|
+
- `src/stores/*.ts` Pinia-Stores
|
|
15
|
+
- `defineStore('consent', ...)` oder vergleichbar
|
|
16
|
+
- Optional: `pinia-plugin-persistedstate` fuer localStorage-Sync
|
|
17
|
+
|
|
18
|
+
Pattern: zentraler Store fuer Consent + Tracker-Aktivierung. Komponenten subscriben statt direktem `useConsent`-Composable.
|
|
19
|
+
|
|
20
|
+
## Default-Verhalten (was passiert ohne Konfiguration)
|
|
21
|
+
|
|
22
|
+
- Pinia-State liegt im Memory → kein Persist ohne Plugin
|
|
23
|
+
- Tracker-SDKs in Components separat initialisiert → mehrfach-Init bei Re-Mount
|
|
24
|
+
- Persist-Plugin schreibt Consent-State, aber auch UI-State unkontrolliert in localStorage
|
|
25
|
+
- `$subscribe` lauscht auf alle Mutations → Tracker triggert bei UI-Klicks (FP)
|
|
26
|
+
|
|
27
|
+
## Compliance-Risiken
|
|
28
|
+
|
|
29
|
+
| Risiko | Norm | Severity | Fix |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| Tracker mehrfach initialisiert | Performance / DSGVO Daten-Min | MITTEL | Singleton-Init im Plugin |
|
|
32
|
+
| Persist-Plugin speichert PII unverschluesselt | Art. 32 DSGVO | HOCH | Whitelist `paths: ['consent']` |
|
|
33
|
+
| Subscriber feuert Tracker bei UI-State-Change | DSGVO Art. 5 lit. b Zweckbindung | HOCH | Watcher auf `consent.analytics` only |
|
|
34
|
+
| Missing Tracker-Teardown bei Widerruf | Art. 7 Abs. 3 DSGVO | HOCH | `$reset` + `unloadAnalytics()` |
|
|
35
|
+
| Drittland-Provider unverhandelt | Art. 44 DSGVO | KRITISCH | EU-Provider + AVV |
|
|
36
|
+
|
|
37
|
+
## Code-Pattern (sanitized)
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// File: src/stores/consent.ts
|
|
41
|
+
import { defineStore } from 'pinia';
|
|
42
|
+
|
|
43
|
+
export type Consent = {
|
|
44
|
+
necessary: true;
|
|
45
|
+
analytics: boolean;
|
|
46
|
+
marketing: boolean;
|
|
47
|
+
timestamp: string | null;
|
|
48
|
+
version: '1.0';
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const defaultConsent: Consent = {
|
|
52
|
+
necessary: true,
|
|
53
|
+
analytics: false,
|
|
54
|
+
marketing: false,
|
|
55
|
+
timestamp: null,
|
|
56
|
+
version: '1.0',
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const useConsentStore = defineStore('consent', {
|
|
60
|
+
state: (): Consent => ({ ...defaultConsent }),
|
|
61
|
+
|
|
62
|
+
getters: {
|
|
63
|
+
hasDecided: (s) => s.timestamp !== null,
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
actions: {
|
|
67
|
+
grant(partial: Partial<Pick<Consent, 'analytics' | 'marketing'>>) {
|
|
68
|
+
this.$patch({
|
|
69
|
+
...partial,
|
|
70
|
+
timestamp: new Date().toISOString(),
|
|
71
|
+
});
|
|
72
|
+
// Server-side log fuer Nachweispflicht
|
|
73
|
+
fetch('/api/consent-log', {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: { 'Content-Type': 'application/json' },
|
|
76
|
+
body: JSON.stringify(this.$state),
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
revoke() {
|
|
80
|
+
this.$reset();
|
|
81
|
+
this.timestamp = new Date().toISOString();
|
|
82
|
+
// Tracker-Teardown
|
|
83
|
+
window.dispatchEvent(new CustomEvent('consent:revoked'));
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
persist: {
|
|
88
|
+
key: 'cookie-consent',
|
|
89
|
+
paths: ['necessary', 'analytics', 'marketing', 'timestamp', 'version'], // Whitelist!
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// File: src/plugins/tracking.ts
|
|
96
|
+
import { useConsentStore } from '@/stores/consent';
|
|
97
|
+
import { watch } from 'vue';
|
|
98
|
+
|
|
99
|
+
let analyticsLoaded = false;
|
|
100
|
+
|
|
101
|
+
export function setupTrackingWatchers() {
|
|
102
|
+
const store = useConsentStore();
|
|
103
|
+
|
|
104
|
+
// Watcher feuert NUR bei aenderung von analytics-Flag
|
|
105
|
+
watch(
|
|
106
|
+
() => store.analytics,
|
|
107
|
+
(next) => {
|
|
108
|
+
if (next && !analyticsLoaded) {
|
|
109
|
+
loadAnalytics();
|
|
110
|
+
analyticsLoaded = true;
|
|
111
|
+
}
|
|
112
|
+
if (!next && analyticsLoaded) {
|
|
113
|
+
unloadAnalytics();
|
|
114
|
+
analyticsLoaded = false;
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{ immediate: true }
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function loadAnalytics() {
|
|
122
|
+
const s = document.createElement('script');
|
|
123
|
+
s.src = 'https://<placeholder-eu-analytics-host>/script.js';
|
|
124
|
+
s.async = true;
|
|
125
|
+
s.dataset.domain = '<placeholder-domain>';
|
|
126
|
+
document.head.appendChild(s);
|
|
127
|
+
console.log('[tracking] analytics loaded');
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function unloadAnalytics() {
|
|
131
|
+
document.querySelectorAll('script[data-domain]').forEach(s => s.remove());
|
|
132
|
+
// Cookies invalidieren
|
|
133
|
+
document.cookie.split(';').forEach(c => {
|
|
134
|
+
const name = c.split('=')[0]?.trim();
|
|
135
|
+
if (name?.startsWith('_pa_') || name?.startsWith('_ga')) {
|
|
136
|
+
document.cookie = `${name}=; max-age=0; path=/`;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// File: src/main.ts
|
|
144
|
+
import { createApp } from 'vue';
|
|
145
|
+
import { createPinia } from 'pinia';
|
|
146
|
+
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
|
|
147
|
+
import App from './App.vue';
|
|
148
|
+
import { setupTrackingWatchers } from './plugins/tracking';
|
|
149
|
+
|
|
150
|
+
const pinia = createPinia();
|
|
151
|
+
pinia.use(piniaPluginPersistedstate);
|
|
152
|
+
|
|
153
|
+
const app = createApp(App);
|
|
154
|
+
app.use(pinia);
|
|
155
|
+
app.mount('#app');
|
|
156
|
+
|
|
157
|
+
// Tracking-Watchers nach Mount aufsetzen
|
|
158
|
+
setupTrackingWatchers();
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## AVV / DPA
|
|
162
|
+
|
|
163
|
+
- Hosting-Provider — Art. 28 DSGVO
|
|
164
|
+
- Analytics-Provider (EU-Region) — AVV Pflicht
|
|
165
|
+
- pinia-plugin-persistedstate: schreibt nur in localStorage = kein AVV (Browser-Storage = First-Party)
|
|
166
|
+
|
|
167
|
+
## DSE-Wording-Vorlage
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
### Speicherung Ihrer Consent-Entscheidung
|
|
171
|
+
|
|
172
|
+
Wir speichern Ihre Cookie-Einwilligung in Ihrem Browser-Speicher
|
|
173
|
+
(`localStorage`) unter dem Schluessel `cookie-consent`. Die Speicherung dient
|
|
174
|
+
ausschliesslich der Nachweispflicht (Art. 7 Abs. 1 DSGVO).
|
|
175
|
+
|
|
176
|
+
**Gespeicherte Daten:**
|
|
177
|
+
- Zeitstempel Ihrer Entscheidung
|
|
178
|
+
- Welche Cookie-Kategorien Sie aktiviert haben
|
|
179
|
+
- Version der Einwilligungs-Vereinbarung
|
|
180
|
+
|
|
181
|
+
Es findet keine Uebertragung an Dritte statt. Die Daten verbleiben in Ihrem
|
|
182
|
+
Browser. Sie koennen die Speicherung jederzeit ueber die Browser-Einstellungen
|
|
183
|
+
loeschen oder ueber den [Cookie-Einstellungen](#cookie-settings)-Link im Footer.
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Verify-Commands (Live-Probe)
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# 1. localStorage-Key korrekt
|
|
190
|
+
echo "JS in DevTools:"
|
|
191
|
+
echo " JSON.parse(localStorage.getItem('cookie-consent'))"
|
|
192
|
+
# Erwartung: { necessary: true, analytics: bool, marketing: bool, timestamp: ..., version: "1.0" }
|
|
193
|
+
|
|
194
|
+
# 2. Tracker-Script erst nach Accept
|
|
195
|
+
# DevTools-Network-Tab vor + nach Accept-Button-Click pruefen
|
|
196
|
+
|
|
197
|
+
# 3. Revoke-Action entfernt Tracker-Cookies
|
|
198
|
+
# DevTools: localStorage.removeItem('cookie-consent') + reload
|
|
199
|
+
# document.cookie sollte keine _pa_/_ga-Eintraege mehr enthalten
|
|
200
|
+
|
|
201
|
+
# 4. Pinia Persist nur whitelisted paths
|
|
202
|
+
# DevTools: localStorage.getItem('cookie-consent')
|
|
203
|
+
# Erwartung: nur consent-Felder, keine UI-State-Reste
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Cross-References
|
|
207
|
+
|
|
208
|
+
- AEGIS-Scanner: `state-leak-checker.ts`, `tracking-scan.ts`, `consent-flow-checker.ts`
|
|
209
|
+
- Skill-Reference: `references/dsgvo.md` § 25 TDDDG, Art. 7 (Nachweispflicht)
|
|
210
|
+
- BGH-Rechtsprechung: `references/bgh-urteile.md` BGH I ZR 7/16
|
|
211
|
+
- Audit-Pattern: `references/audit-patterns.md` Phase 2 (Cookie-Audit), Phase 4 (Widerrufs-Test)
|
|
@@ -178,7 +178,7 @@ Wenn die Site Mitarbeiter-Login enthaelt + keine separate Beschaeftigten-Datensc
|
|
|
178
178
|
```
|
|
179
179
|
Finding: Datenpanne nicht innerhalb 72 h gemeldet
|
|
180
180
|
- §: Art. 33 DSGVO + § 130 OWiG (Aufsichtspflicht)
|
|
181
|
-
- Az.: OLG Hamm
|
|
181
|
+
- Az.: OLG Hamm 11 U 88/22 (20.01.2023) — auch versehentliche Mails sind Datenpannen, 100 EUR Schadensersatz pro Betroffenem
|
|
182
182
|
- Strafrechtlich: § 263 StGB falls vorsaetzliche Verschleierung erkennbar
|
|
183
183
|
- Bussgeld DSGVO: Stufe 1 (Art. 83 Abs. 4)
|
|
184
184
|
- Risiko-Vektor:
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Strukturierte Streitwert-DB fuer brutaler-anwalt v4.4.0+ Abmahn-Simulation. Jede Verstoss-Klasse hat (a) Base-Range, (b) Az.-Anker mit Source-URL, (c) Aktor-Multiplikatoren, (d) Branchen-Multiplikatoren. Werte basieren auf publizierten BGH/OLG/LG-Urteilen, BfDI/LDI-Bussgeldbescheiden 2020-2025. Disclaimer: indikativ, KEINE Rechtsberatung i.S.d. RDG §2.",
|
|
3
|
+
"_schema": {
|
|
4
|
+
"verstoss_klassen": "Objekt mit Verstoss-Slug als Key",
|
|
5
|
+
"fields_pro_klasse": {
|
|
6
|
+
"name": "Lesbarer Verstoss-Name (de)",
|
|
7
|
+
"rechtsgrundlage": "§ / Art. Pflicht-Norm",
|
|
8
|
+
"streitwert_eur_min": "Untere Schadens-Range-Grenze EUR",
|
|
9
|
+
"streitwert_eur_max": "Obere Schadens-Range-Grenze EUR",
|
|
10
|
+
"az_anker": "BGH/EuGH/OLG/LG-Az. als Source-Anker",
|
|
11
|
+
"az_source_url": "Volltext-Link zur Quelle",
|
|
12
|
+
"aktor_multiplikatoren": "Faktor je nach Anwalts-Akteur (Standard 1.0, VZB 1.5, WBZ 2.0, Bekannt-Abmahn-RAK 2.5)",
|
|
13
|
+
"branchen_multiplikatoren": "Faktor je nach Branche (Standard 1.0, Heilberuf/MedTech 1.5)",
|
|
14
|
+
"schwere_faktoren": "Faktor je nach Severity (LOW 0.5, MED 1.0, HIGH 2.0, CRIT 4.0)",
|
|
15
|
+
"anwalts_kosten_geschaeftsgebuehr": "1.3 Geschaeftsgebuehr nach RVG bei Standard-Streitwert",
|
|
16
|
+
"notes": "Kontext / Anwendungsgrenzen / Vorsicht"
|
|
17
|
+
},
|
|
18
|
+
"version": "0.1.0 — initial, Stand 2026-05-15"
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
"verstoss_klassen": {
|
|
22
|
+
"google_fonts_ohne_consent": {
|
|
23
|
+
"name": "Google Fonts via Google-CDN ohne Consent",
|
|
24
|
+
"rechtsgrundlage": "Art. 6(1) DSGVO + § 25 TDDDG + Art. 13 DSGVO",
|
|
25
|
+
"streitwert_eur_min": 100,
|
|
26
|
+
"streitwert_eur_max": 500,
|
|
27
|
+
"az_anker": "LG Muenchen 3 O 17493/20",
|
|
28
|
+
"az_source_url": "https://medien-internet-und-recht.de/volltext.php?mir_dok_id=3119",
|
|
29
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
|
|
30
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5, "spa_med": 1.3, "finance": 1.4},
|
|
31
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
32
|
+
"anwalts_kosten_geschaeftsgebuehr": 215,
|
|
33
|
+
"notes": "LG Muenchen 2022. Schadensersatz pro betroffener Person 100 EUR. Abmahn-Welle 2022-2023, Pop-In gegen Wallow/RAK Lenard."
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
"cookie_banner_fehlt": {
|
|
37
|
+
"name": "Cookie-Banner fehlt / pre-Consent-Tracking",
|
|
38
|
+
"rechtsgrundlage": "§ 25 TDDDG + EuGH C-673/17 Planet49",
|
|
39
|
+
"streitwert_eur_min": 1000,
|
|
40
|
+
"streitwert_eur_max": 15000,
|
|
41
|
+
"az_anker": "EuGH C-673/17 Planet49",
|
|
42
|
+
"az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-673/17",
|
|
43
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
|
|
44
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5, "spa_med": 1.3, "finance": 1.4, "ecommerce": 1.2},
|
|
45
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
46
|
+
"anwalts_kosten_geschaeftsgebuehr": 887,
|
|
47
|
+
"notes": "Aktive Welle 2023-2025. BfDI-Konsultations-Bescheide variieren stark."
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
"impressum_unvollstaendig": {
|
|
51
|
+
"name": "Impressum unvollstaendig oder verdeckt platziert",
|
|
52
|
+
"rechtsgrundlage": "§ 5 DDG (ehemals § 5 TMG)",
|
|
53
|
+
"streitwert_eur_min": 1500,
|
|
54
|
+
"streitwert_eur_max": 5000,
|
|
55
|
+
"az_anker": "BGH I ZR 218/07 Fehlendes Impressum",
|
|
56
|
+
"az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&sid=&nr=46651",
|
|
57
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
|
|
58
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 1.5},
|
|
59
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
60
|
+
"anwalts_kosten_geschaeftsgebuehr": 627,
|
|
61
|
+
"notes": "Klassischer Wettbewerbszentrale-Abmahn-Vektor. 2-Klick-Regel BGH 2007."
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
"newsletter_ohne_doi": {
|
|
65
|
+
"name": "Newsletter ohne Double-Opt-In",
|
|
66
|
+
"rechtsgrundlage": "§ 7 Abs. 2 Nr. 2 UWG + Art. 6 DSGVO",
|
|
67
|
+
"streitwert_eur_min": 3000,
|
|
68
|
+
"streitwert_eur_max": 10000,
|
|
69
|
+
"az_anker": "BGH I ZR 218/07 (Single-Opt-In unzureichend)",
|
|
70
|
+
"az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&sid=&nr=46651",
|
|
71
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "abmahn_anwalt_bekannt": 2.5},
|
|
72
|
+
"branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.2, "saas": 1.1},
|
|
73
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
74
|
+
"anwalts_kosten_geschaeftsgebuehr": 745,
|
|
75
|
+
"notes": "BGH 11.03.2004. DOI ist Pflicht (selbst bei Bestandskunden teils unklar). Aktive Welle 2024-2025 (Gravenreuth)."
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
"agb_b2c_unwirksame_klausel": {
|
|
79
|
+
"name": "AGB B2C mit unwirksamer Klausel (§§ 305-310 BGB)",
|
|
80
|
+
"rechtsgrundlage": "§§ 305 ff. BGB + UWG § 3a iVm § 1 UKlaG",
|
|
81
|
+
"streitwert_eur_min": 2500,
|
|
82
|
+
"streitwert_eur_max": 15000,
|
|
83
|
+
"az_anker": "BGH XI ZR 26/20 (Genehmigungsfiktion AGB-Aenderung) + BGH VIII ZR 70/08 (Widerrufsbelehrung)",
|
|
84
|
+
"az_source_url": "https://juris.bundesgerichtshof.de/cgi-bin/rechtsprechung/document.py?Gericht=bgh&Art=en&nr=59258",
|
|
85
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.8, "wettbewerbszentrale": 2.2, "abmahn_anwalt_bekannt": 2.5},
|
|
86
|
+
"branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.3, "saas": 1.2, "finance": 1.5},
|
|
87
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
88
|
+
"anwalts_kosten_geschaeftsgebuehr": 887,
|
|
89
|
+
"notes": "Verbraucherzentralen-Hauptvektor. Mehrere unwirksame Klauseln = additive Streitwerte."
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
"drittland_us_ohne_scc": {
|
|
93
|
+
"name": "Drittland-Transfer USA ohne SCC / TIA",
|
|
94
|
+
"rechtsgrundlage": "Art. 44 ff. DSGVO + EuGH Schrems II",
|
|
95
|
+
"streitwert_eur_min": 10000,
|
|
96
|
+
"streitwert_eur_max": 100000,
|
|
97
|
+
"az_anker": "EuGH C-311/18 Schrems II",
|
|
98
|
+
"az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-311/18",
|
|
99
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 2.0, "datenschutzbehoerde": 3.0, "abmahn_anwalt_bekannt": 2.5},
|
|
100
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.0, "finance": 2.0, "medtech": 2.5},
|
|
101
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
102
|
+
"anwalts_kosten_geschaeftsgebuehr": 1953,
|
|
103
|
+
"notes": "BfDI-Bescheide bis 35M EUR (H&M 2020). Schrems-II-Risiko bei jedem US-Provider ohne DPF + zusaetzliche TIA."
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
"art13_datenschutzerklaerung_unvollstaendig": {
|
|
107
|
+
"name": "Datenschutzerklaerung unvollstaendig (Art. 13/14 DSGVO)",
|
|
108
|
+
"rechtsgrundlage": "Art. 13/14 DSGVO + Art. 83 Abs. 5(b)",
|
|
109
|
+
"streitwert_eur_min": 2000,
|
|
110
|
+
"streitwert_eur_max": 25000,
|
|
111
|
+
"az_anker": "BfDI/LDI-Bescheide 2021-2025 (§-Norm-Anker — Art. 83(5)(b) DSGVO; einzelne Bescheide siehe references/bgh-urteile.md fuer EuGH C-300/21 + C-340/21 + C-687/21)",
|
|
112
|
+
"az_source_url": "https://www.bfdi.bund.de/DE/Service/Taetigkeitsberichte/Taetigkeitsberichte_node.html",
|
|
113
|
+
"aktor_multiplikatoren": {"standard": 1.0, "datenschutzbehoerde": 3.0, "verbraucherzentrale": 1.5, "wettbewerbszentrale": 1.8},
|
|
114
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.0, "finance": 1.5, "ecommerce": 1.2},
|
|
115
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
116
|
+
"anwalts_kosten_geschaeftsgebuehr": 887,
|
|
117
|
+
"notes": "Art. 83(5)(b) DSGVO erlaubt bis 20M EUR / 4%. Realistic 5-25k bei mittelstaendischen Verstoessen."
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
"datenpanne_keine_meldung_72h": {
|
|
121
|
+
"name": "Datenpanne keine Meldung an Behoerde binnen 72h",
|
|
122
|
+
"rechtsgrundlage": "Art. 33 DSGVO + EuGH C-340/21",
|
|
123
|
+
"streitwert_eur_min": 25000,
|
|
124
|
+
"streitwert_eur_max": 500000,
|
|
125
|
+
"az_anker": "EuGH C-340/21 Bulgarische Steuerbehoerde",
|
|
126
|
+
"az_source_url": "https://curia.europa.eu/juris/liste.jsf?num=C-340/21",
|
|
127
|
+
"aktor_multiplikatoren": {"standard": 1.0, "datenschutzbehoerde": 3.0, "betroffener_individuell": 1.5},
|
|
128
|
+
"branchen_multiplikatoren": {"standard": 1.0, "heilberuf": 2.5, "finance": 2.5, "medtech": 2.5},
|
|
129
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
130
|
+
"anwalts_kosten_geschaeftsgebuehr": 4127,
|
|
131
|
+
"notes": "Art. 83(4) DSGVO bis 10M EUR / 2%. Skalliert mit Anzahl betroffener Personen + Datenkategorie (Art-9 4x)."
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
"eudr_geolocation_fehlt": {
|
|
135
|
+
"name": "EUDR Geolocation pro Plot fehlt",
|
|
136
|
+
"rechtsgrundlage": "Art. 9 EUDR (VO 2023/1115)",
|
|
137
|
+
"streitwert_eur_min": 50000,
|
|
138
|
+
"streitwert_eur_max": 2000000,
|
|
139
|
+
"az_anker": "EUDR Art. 25 (§-Norm-Anker, keine Case-Law — Erstanwendung 30.12.2025 erwartet)",
|
|
140
|
+
"az_source_url": "https://eur-lex.europa.eu/eli/reg/2023/1115/oj",
|
|
141
|
+
"aktor_multiplikatoren": {"standard": 1.0, "nationale_behoerde": 3.0},
|
|
142
|
+
"branchen_multiplikatoren": {"standard": 1.0, "kaffee_importer": 1.5, "kakao_importer": 1.5, "soja_importer": 1.5, "palmoel_importer": 2.0},
|
|
143
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
144
|
+
"anwalts_kosten_geschaeftsgebuehr": 12000,
|
|
145
|
+
"notes": "Art. 25(2) EUDR: bis 4% des Unionsweiten Jahresumsatzes. Konfiskation der Ware (Art. 25(3)). Marktausschluss bis 12 Monate (Art. 25(4))."
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
"ai_act_verbotene_praktik": {
|
|
149
|
+
"name": "AI-Act verbotene Praktik (Art. 5)",
|
|
150
|
+
"rechtsgrundlage": "Art. 5 AI Act (VO 2024/1689) — seit 02.02.2025",
|
|
151
|
+
"streitwert_eur_min": 1000000,
|
|
152
|
+
"streitwert_eur_max": 35000000,
|
|
153
|
+
"az_anker": "Art. 99 Abs. 3 AI Act (§-Norm-Anker, keine Case-Law — Erstanwendung Q2/2025 erwartet)",
|
|
154
|
+
"az_source_url": "https://eur-lex.europa.eu/eli/reg/2024/1689/oj",
|
|
155
|
+
"aktor_multiplikatoren": {"standard": 1.0, "nationale_behoerde": 3.0, "eu_ai_office": 3.5},
|
|
156
|
+
"branchen_multiplikatoren": {"standard": 1.0, "hr": 2.0, "finance": 2.0, "edtech": 1.8, "behoerde": 2.5},
|
|
157
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
158
|
+
"anwalts_kosten_geschaeftsgebuehr": 36000,
|
|
159
|
+
"notes": "Art. 99(3): bis 35M EUR oder 7% weltweiter Jahresumsatz. Inkraft seit 02.02.2025."
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
"bfsg_barrierefreiheit_fehlt": {
|
|
163
|
+
"name": "BFSG Barrierefreiheit fehlt (B2C E-Commerce)",
|
|
164
|
+
"rechtsgrundlage": "BFSG + EN 301 549 / WCAG 2.1 AA",
|
|
165
|
+
"streitwert_eur_min": 5000,
|
|
166
|
+
"streitwert_eur_max": 100000,
|
|
167
|
+
"az_anker": "§ 22 BFSG iVm § 16 BFSGV (§-Norm-Anker, keine Case-Law — Stichtag 28.06.2025)",
|
|
168
|
+
"az_source_url": "https://www.gesetze-im-internet.de/bfsg/",
|
|
169
|
+
"aktor_multiplikatoren": {"standard": 1.0, "verbraucherzentrale": 1.5, "behoerde": 2.5, "verband_blindeb_behind": 2.0},
|
|
170
|
+
"branchen_multiplikatoren": {"standard": 1.0, "ecommerce": 1.3, "banking": 1.5},
|
|
171
|
+
"schwere_faktoren": {"low": 0.5, "med": 1.0, "high": 2.0, "crit": 4.0},
|
|
172
|
+
"anwalts_kosten_geschaeftsgebuehr": 1100,
|
|
173
|
+
"notes": "Stichtag 28.06.2025 fuer alle B2C-E-Commerce ab Schwellenwerten. § 22 BFSG: bis 100k EUR Bussgeld."
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|