{"id":395677,"date":"2026-11-04T09:28:31","date_gmt":"2026-11-04T09:28:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/privacyscrubber-ztds-guard\/"},"modified":"2026-11-04T13:42:30","modified_gmt":"2026-11-04T13:42:30","slug":"privacyscrubber-ztds-guard","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/privacyscrubber-ztds-guard\/","author":23596000,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.4.8","stable_tag":"2.4.8","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PrivacyScrubber ZTDS Guard","header_author":"Ilya Sibiryakov (PrivacyScrubber & ZTDS)","header_description":"Zero-Trust Data Sanitization (ZTDS\u2122) client-side PII sanitizer for WordPress forms (Contact Form 7, WPForms, Gravity Forms, Elementor, Fluent Forms). Tokenizes sensitive personal, medical, and financial data in browser RAM before transmission to network or AI.","assets_banners_color":"485264","last_updated":"2026-11-04 13:42:30","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/privacyscrubber.com\/integrations\/wordpress\/","header_plugin_uri":"https:\/\/privacyscrubber.com\/integrations\/wordpress\/","header_author_uri":"https:\/\/privacyscrubber.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":137,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.4.8":{"tag":"2.4.8","author":"moxno","date":"2026-11-04 13:42:30","revision":3784053}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3783541,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3783541,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3783541,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3784021,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3784021,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.4.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3784021,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3784021,"resolution":"2","location":"assets","locale":"","width":1280,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3784021,"resolution":"3","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"Real-time client-side PII &amp; PHI tokenization in WordPress forms (Contact Form 7, WPForms, Gravity Forms, Elementor, Fluent Forms) before network submission.","2":"1-Click Local Browser Decryption &amp; Reveal inside WordPress Admin using Dual-Envelope WebCrypto (<code>AES-256-GCM<\/code> + <code>PBKDF2-SHA256<\/code>).","3":"PrivacyScrubber ZTDS Guard Settings \u2014 select General or Medical ZTDS RFC v1.0 baseline profile, custom CSS form selectors, and optional verification badge."}},"plugin_section":[],"plugin_tags":[1152,131785,38099,396,600],"plugin_category":[42,54],"plugin_contributors":[290667],"plugin_business_model":[],"class_list":["post-395677","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-gdpr","plugin_tags-hipaa","plugin_tags-privacy","plugin_tags-security","plugin_category-contact-forms","plugin_category-security-and-spam-protection","plugin_contributors-moxno","plugin_committers-moxno"],"banners":{"banner":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/banner-772x250.png?rev=3784021","banner_2x":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/banner-1544x500.png?rev=3784021","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/icon.svg?rev=3783541","icon":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/icon.svg?rev=3783541","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/screenshot-1.png?rev=3784021","caption":"Real-time client-side PII &amp; PHI tokenization in WordPress forms (Contact Form 7, WPForms, Gravity Forms, Elementor, Fluent Forms) before network submission."},{"src":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/screenshot-2.png?rev=3784021","caption":"1-Click Local Browser Decryption &amp; Reveal inside WordPress Admin using Dual-Envelope WebCrypto (<code>AES-256-GCM<\/code> + <code>PBKDF2-SHA256<\/code>)."},{"src":"https:\/\/ps.w.org\/privacyscrubber-ztds-guard\/assets\/screenshot-3.png?rev=3784021","caption":"PrivacyScrubber ZTDS Guard Settings \u2014 select General or Medical ZTDS RFC v1.0 baseline profile, custom CSS form selectors, and optional verification badge."}],"raw_content":"<!--section=description-->\n<p><strong>PrivacyScrubber ZTDS Guard<\/strong> (Plane 6 of the PrivacyScrubber ecosystem) enforces the <strong>Zero-Trust Data Sanitization (ZTDS\u2122 RFC v1.0)<\/strong> protocol for <strong>WordPress form privacy, PII redaction, and client-side data masking<\/strong> on contact, patient intake, legal consultation, and financial onboarding forms.<\/p>\n\n<p>When a visitor submits a form on your WordPress site, sensitive personal data (PII) and protected health information (PHI) frequently flow into third-party webhooks (Zapier, Make, n8n), CRM systems (HubSpot, Salesforce, Pipedrive), email notifications, Slack channels, and AI triage bots (OpenAI ChatGPT, Anthropic Claude, Google Gemini). PrivacyScrubber ZTDS Guard intercepts the form submission <strong>inside the visitor's browser RAM (under 0.4ms)<\/strong> during the DOM capture phase\u2014before <code>fetch()<\/code> or <code>XMLHttpRequest<\/code> sends data over the network.<\/p>\n\n<h4>Dual-Envelope Architecture<\/h4>\n\n<ol>\n<li><strong>Public Envelope (Sanitized Form Fields):<\/strong> Sensitive identifiers (Names, Phone Numbers, Emails, Payment Cards, SSN\/National IDs, IBANs, Medical Record Numbers, Tax IDs) are replaced in-memory with deterministic tokens such as <code>[NAME_1]<\/code>, <code>[PHONE_1]<\/code>, <code>[EMAIL_1]<\/code>, and <code>[SSN_1]<\/code>. Downstream CRMs, email notifications, and AI triage agents process the inquiry with zero exposure to raw PII\/PHI.<\/li>\n<li><strong>Private Vault Envelope (<code>_ztds_vault_payload<\/code>):<\/strong> The original cleartext mapping is encrypted inside the visitor's browser using native WebCrypto (<code>AES-256-GCM<\/code> + <code>PBKDF2-SHA256<\/code>) and attached as a sealed hidden payload. Authorized administrators can decrypt and reveal original entries in 1 click inside the WordPress Admin dashboard using their local browser key.<\/li>\n<\/ol>\n\n<h4>Supported Form Builders<\/h4>\n\n<ul>\n<li><strong>Contact Form 7<\/strong> (<code>form.wpcf7-form<\/code>)<\/li>\n<li><strong>WPForms<\/strong> (<code>form.wpforms-form<\/code>)<\/li>\n<li><strong>Elementor Forms<\/strong> (<code>form.elementor-form<\/code>)<\/li>\n<li><strong>Gravity Forms<\/strong> (<code>.gform_wrapper form<\/code>, <code>form[id^=\"gform_\"]<\/code>)<\/li>\n<li><strong>Fluent Forms<\/strong> (<code>form.fluentform<\/code>)<\/li>\n<li><strong>Custom HTML \/ AJAX Forms<\/strong> (via <code>data-ztds=\"true\"<\/code> or custom CSS selectors in Settings)<\/li>\n<\/ul>\n\n<h4>Key Architectural Guarantees<\/h4>\n\n<ul>\n<li><strong>Zero External Network Egress:<\/strong> 100% of detection, tokenization, and encryption executes locally in the visitor's browser (<code>window.crypto.subtle<\/code>). Zero bytes of form content are ever transmitted to PrivacyScrubber or third-party servers.<\/li>\n<li><strong>Fail-Open Business Continuity:<\/strong> If a legacy browser lacks WebCrypto support or encounters a custom DOM exception, the interceptor gracefully bypasses tokenization so your business never loses an inbound lead.<\/li>\n<li><strong>Statutory Risk Minimization:<\/strong> Technical &amp; Organizational Measure (TOM) supporting GDPR Article 32 pseudonymization, HIPAA Safe Harbor (45 CFR \u00a7 164.514(b)), and PCI-DSS v4.0 intake hygiene.<\/li>\n<\/ul>\n\n<h4>External Services &amp; Privacy Disclosure<\/h4>\n\n<p>This plugin executes 100% locally in the visitor's browser and does <strong>not<\/strong> transmit any form data, visitor PII, or telemetry to any external server. Optional verification badge links to <code>https:\/\/privacyscrubber.com\/integrations\/wordpress\/<\/code> and <code>https:\/\/ztds.ai\/<\/code> are strictly controlled by the site administrator under <strong>Settings -&gt; PrivacyScrubber ZTDS<\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>privacyscrubber-wp-guard<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin ZIP through the WordPress <strong>Plugins -&gt; Add New -&gt; Upload Plugin<\/strong> screen.<\/li>\n<li>Activate <strong>PrivacyScrubber ZTDS Guard<\/strong> through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>Settings -&gt; PrivacyScrubber ZTDS<\/strong> to select your ZTDS RFC v1.0 baseline profile (<code>General<\/code> or <code>Medical<\/code>), configure custom form selectors, or toggle the verification badge.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20form%20submissions%20to%20an%20external%20api%20or%20cloud%20server%3F\"><h3>Does this plugin send form submissions to an external API or cloud server?<\/h3><\/dt>\n<dd><p>No. All PII detection, token replacement (<code>[NAME_1]<\/code>, <code>[EMAIL_1]<\/code>), and <code>AES-256-GCM<\/code> vault encryption run locally inside the visitor's web browser (<code>assets\/ztds-form-guard.js<\/code>). No external API requests are made during form submission.<\/p><\/dd>\n<dt id=\"how%20do%20administrators%20read%20the%20original%20unmasked%20values%3F\"><h3>How do administrators read the original unmasked values?<\/h3><\/dt>\n<dd><p>When viewing entries in your WordPress Admin panel, <code>assets\/ztds-admin.js<\/code> detects the <code>_ztds_vault_payload<\/code> field and renders a <strong>1-Click Local Reveal<\/strong> control. Decryption occurs locally in the administrator's browser memory.<\/p><\/dd>\n<dt id=\"are%20all%20features%20in%20this%20wordpress%20plugin%20unlocked%20under%20gplv2%2B%3F\"><h3>Are all features in this WordPress plugin unlocked under GPLv2+?<\/h3><\/dt>\n<dd><p>Yes. This plugin provides the complete <strong>ZTDS RFC v1.0 Reference Form Guard<\/strong> (<code>General<\/code> universal PII\/secrets baseline and <code>Medical<\/code> intake profile) plus Dual-Envelope <code>AES-256-GCM<\/code> browser vaulting 100% free and unrestricted under GPLv2 or later.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.4.8<\/h4>\n\n<ul>\n<li>Synchronized ZTDS RFC v1.0 reference baseline engine with v2.4.8.<\/li>\n<li>Added dual-authority ZTDS verification seal with independent administrator toggles for badge visibility and verification links (opt-in by default per WordPress.org Guideline 10).<\/li>\n<li>Added native Gravity Forms (<code>form[id^=\"gform_\"]<\/code>) selector support.<\/li>\n<li>Streamlined profile selector to the two native standalone ZTDS RFC v1.0 reference profiles (<code>General<\/code> and <code>Medical<\/code>) with zero local quota restrictions under GPLv2+.<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li>Initial public release of Plane 6 WordPress ZTDS Form Guard with Dual-Envelope WebCrypto (<code>AES-256-GCM<\/code>) vaulting.<\/li>\n<\/ul>","raw_excerpt":"Client-side GDPR &amp; HIPAA PII sanitizer for WordPress forms (CF7, WPForms, Gravity Forms, Elementor, Fluent Forms). Zero-egress browser RAM vault.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=395677"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/moxno"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395677"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395677"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395677"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395677"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395677"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}