ca945d2d8031841d2952523770393798ee55982a
Loest die YouTube/Vimeo-API-Luecke: viele dienste laden ueber <script> (z. B. youtube.com/iframe_api, www-widgetapi.js, analytics) statt iframes - oft per JavaScript nachgeladen, daher fuer den scanner unsichtbar. - Pro dienst aktivierbar ueber das (umbenannte) feld "Zugehoerige Skripte blockieren (z. B. YouTube-/Vimeo-API)" = das vorhandene loads_script-flag. Presets (YouTube, Vimeo, Maps) haben es bereits an. - Server-seitig: passende <script src> werden zu type="text/plain" (src -> data-cb-src) neutralisiert, laden also nicht. - Client-seitig: winziger guard ganz frueh im <head> patcht appendChild/insertBefore/replaceChild und neutralisiert dynamisch injizierte scripts VOR dem einfuegen -> kein request. Faengt damit auch die per JS nachgeladene iframe_api ab. - Einwilligung (per-dienst-consent, z. B. ueber den video-platzhalter) schaltet die scripts via cbActivateScripts frei und laedt sie nach. - Neuer shortcode [content_blocker_consent id="…"] als einwilligungs-button fuer reine skript-dienste ohne sichtbaren platzhalter. - guard-logik mit DOM-mock getestet (block + reinject), server-regex isoliert geprueft. i18n DE/EN ergaenzt (127 strings). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
GDPR Content Blocker — Monorepo
DSGVO-konformer Consent-Blocker für externe iframes + selbst-gehosteter Lizenz-/Update-Server.
Struktur
gdpr-content-blocker/— das WordPress-Plugin. Aus diesem Ordner wird die Release-ZIP gebaut (Top-Level-Ordnergdpr-content-blocker/).license-backend/— Node/Express + SQLite Lizenz- & Update-Backend (Docker).hilfsdaten/— interne Notizen, Spickzettel, Gitea-Runner-Setup (nicht Teil des Plugins).release.ps1— baut die Plugin-ZIP und lädt sie ins Backend (manueller Release).
Manueller Release (Update verteilen)
- Version in
gdpr-content-blocker/gdpr-content-blocker.phpbumpen (HeaderVersion:unddefine( 'CB_VERSION', … )), committen. - ZIP bauen + hochladen:
.\release.ps1 -Version 1.0.1 -Token DEIN_ADMIN_API_TOKEN - Lizenzierte Seiten sehen das Update unter Plugins.
Details: siehe hilfsdaten/SPICKZETTEL.md.
Backend starten
Siehe license-backend/README.md.
Hinweis
Secrets (.env) sind per .gitignore ausgeschlossen und gehören nicht ins Repo.
Description
Languages
JavaScript
49.8%
PHP
43.9%
CSS
3.2%
Python
2.1%
PowerShell
0.7%
Other
0.3%