{"id":324714,"date":"2026-06-14T13:06:48","date_gmt":"2026-06-14T13:06:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/erdo-cra-compliance\/"},"modified":"2026-06-17T10:38:49","modified_gmt":"2026-06-17T10:38:49","slug":"erdo-cra-compliance","status":"publish","type":"plugin","link":"https:\/\/es-ar.wordpress.org\/plugins\/erdo-cra-compliance\/","author":23436214,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Erdo CRA Compliance","header_author":"Erdinc Bulat","header_description":"EU Cyber Resilience Act (CRA), GDPR, and NIS2 compliance panel for WordPress. Scans installed plugins for CRA readiness, generates VDP policies, SBOM, security.txt, and PDF compliance reports.","assets_banners_color":"7f96b3","last_updated":"2026-06-17 10:38:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":114,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"erdincbulat","date":"2026-06-17 10:38:49"}},"upgrade_notice":{"1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3571912,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3571912,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3575649,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3571912,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3571912,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3571912,"resolution":"1","location":"assets","locale":"","width":1918,"height":880},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3571912,"resolution":"2","location":"assets","locale":"","width":1918,"height":881},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3571912,"resolution":"3","location":"assets","locale":"","width":1918,"height":876},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3571912,"resolution":"4","location":"assets","locale":"","width":1918,"height":875}},"screenshots":{"1":"Main compliance dashboard with score ring and per-framework risk cards.","2":"Scan results table with filter tabs for CRA, GDPR, and NIS2 findings.","3":"Developer Tools \u2014 VDP, SBOM, security.txt, and Conformity Declaration generators.","4":"PDF compliance report download."}},"plugin_section":[],"plugin_tags":[14361,264405,266618,131785,267090],"plugin_category":[54],"plugin_contributors":[253916],"plugin_business_model":[],"class_list":["post-324714","plugin","type-plugin","status-publish","hentry","plugin_tags-compliance","plugin_tags-cyber-resilience-act","plugin_tags-eu-compliance","plugin_tags-gdpr","plugin_tags-nis2","plugin_category-security-and-spam-protection","plugin_contributors-erdincbulat","plugin_committers-erdincbulat"],"banners":{"banner":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/banner-772x250.png?rev=3571912","banner_2x":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/banner-1544x500.png?rev=3571912","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/icon.svg?rev=3575649","icon":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/icon.svg?rev=3575649","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/screenshot-1.png?rev=3571912","caption":"Main compliance dashboard with score ring and per-framework risk cards."},{"src":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/screenshot-2.png?rev=3571912","caption":"Scan results table with filter tabs for CRA, GDPR, and NIS2 findings."},{"src":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/screenshot-3.png?rev=3571912","caption":"Developer Tools \u2014 VDP, SBOM, security.txt, and Conformity Declaration generators."},{"src":"https:\/\/ps.w.org\/erdo-cra-compliance\/assets\/screenshot-4.png?rev=3571912","caption":"PDF compliance report download."}],"raw_content":"<!--section=description-->\n<p><strong>Erdo CRA Compliance<\/strong> helps WordPress site owners and plugin developers prepare for EU regulatory deadlines \u2014 the CRA Vulnerability Disclosure Policy obligation (September 11, 2026) and full CRA compliance (December 11, 2027).<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li><strong>Plugin Risk Scanner<\/strong> \u2014 Scans all active plugins against CRA readiness criteria: last updated, WordPress version lag, PHP requirements, support health, and closed\/removed plugin detection.<\/li>\n<li><strong>GDPR Scanner<\/strong> \u2014 Detects third-party scripts, external resource connections, and data-handling risk signals on your site.<\/li>\n<li><strong>NIS2 Scanner<\/strong> \u2014 Checks site-level security posture against NIS2 Article 21 requirements: HTTPS, MFA, backups, WAF, activity logging, and auto-updates.<\/li>\n<li><strong>Compliance Dashboard<\/strong> \u2014 Visual score ring, per-framework risk counts, and actionable guidance in one screen.<\/li>\n<li><strong>PDF Compliance Report<\/strong> \u2014 Download a formatted PDF report covering all scan results, executive summary, and prioritised recommendations.<\/li>\n<li><strong>VDP Generator<\/strong> \u2014 Generate a ready-to-publish Vulnerability Disclosure Policy document pre-filled with your site details.<\/li>\n<li><strong>SBOM Generator<\/strong> \u2014 Create a CycloneDX 1.4 JSON Software Bill of Materials covering WordPress core, active plugins, and active theme.<\/li>\n<li><strong>security.txt<\/strong> \u2014 Automatically serve an RFC 9116-compliant <code>\/.well-known\/security.txt<\/code> on your site.<\/li>\n<li><strong>Conformity Declaration Template<\/strong> \u2014 A structured self-assessment checklist covering CRA Articles 10\/11\/14, GDPR Articles 25\/32\/30, and NIS2 Articles 21\/23.<\/li>\n<\/ul>\n\n<h4>CRA Deadlines<\/h4>\n\n<ul>\n<li><strong>September 11, 2026<\/strong> \u2014 Vulnerability Disclosure Policy (VDP) obligation begins. This plugin generates and serves your VDP automatically.<\/li>\n<li><strong>December 11, 2027<\/strong> \u2014 Full CRA compliance + CE marking required. Penalties up to 15M EUR or 2.5% of global turnover.<\/li>\n<\/ul>\n\n<h4>Legal Disclaimer<\/h4>\n\n<p>This plugin provides automated analysis tools and document templates to assist with EU regulatory preparation. It does <strong>not<\/strong> constitute legal advice and does <strong>not<\/strong> guarantee regulatory compliance with the CRA, GDPR, NIS2, or any other regulation. All assessments, scores, and generated documents (VDP, SBOM, security.txt, Conformity Declaration) are starting points and templates only. Consult a qualified legal or compliance professional before relying on any output for regulatory purposes.<\/p>\n\n<h4>External Services<\/h4>\n\n<p>This plugin connects to the following third-party services. Each is documented below with what it is used for, what data is sent, when, and links to the relevant terms and privacy policy.<\/p>\n\n<p><strong>WordPress.org Plugins API<\/strong><\/p>\n\n<p>This plugin makes HTTP requests to the WordPress.org Plugins API (<code>api.wordpress.org\/plugins\/info\/<\/code>) to retrieve metadata for installed plugins (last updated, tested WordPress version, PHP requirements, active installs). This request is made only during a manual or scheduled scan. No user data is sent \u2014 only plugin slugs are included in the request. Responses are cached for 12 hours per plugin using WordPress transients to minimise API requests. See the <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">WordPress.org privacy policy<\/a>.<\/p>\n\n<p><strong>Patchstack Vulnerability Database (optional)<\/strong><\/p>\n\n<p>This plugin can optionally connect to the Patchstack vulnerability database (<code>patchstack.com\/database\/api\/v2<\/code>) to check installed plugins against known security vulnerabilities (CVEs). This connection is opt-in and disabled by default \u2014 it is only made if the site owner enters their own Patchstack API key on the plugin's Settings page.<\/p>\n\n<p>When enabled, the plugin sends the configured API key (for authentication) and the slugs\/versions of installed plugins (to look up known vulnerabilities) during a manual or scheduled scan. Vulnerability responses are cached for 6 hours using WordPress transients. No personal or visitor data is sent. This service is provided by Patchstack O\u00dc: <a href=\"https:\/\/patchstack.com\/terms-and-conditions\/\">Terms of Service<\/a>, <a href=\"https:\/\/patchstack.com\/privacy-policy\/\">Privacy Policy<\/a>.<\/p>\n\n<p><strong>GDPR Scanner \u2014 third-party script detection<\/strong><\/p>\n\n<p>The GDPR scanner module includes a list of known third-party script domains (e.g. Google Analytics, Facebook Pixel, Intercom, HubSpot) used to detect whether <em>your site<\/em> is loading scripts from these services. This is a local pattern match against script URLs already enqueued on your own site \u2014 the plugin itself does not contact, query, or send any data to these third-party services.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect, store, or transmit any personal data to external services beyond the requests described above.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>erdo-cra-compliance<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Navigate to <strong>CRA Compliance<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Click <strong>Run Scan<\/strong> to perform your first compliance scan.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20is%20the%20eu%20cyber%20resilience%20act%20and%20does%20it%20affect%20my%20wordpress%20site%3F\"><h3>What is the EU Cyber Resilience Act and does it affect my WordPress site?<\/h3><\/dt>\n<dd><p>The EU Cyber Resilience Act (CRA) is a regulation that requires manufacturers of products with digital elements \u2014 including software and websites sold or used in the EU \u2014 to meet cybersecurity standards throughout the product lifecycle. If you sell products or services in the EU, run a WordPress site that processes EU user data, or develop WordPress plugins, the CRA likely applies to you. The first deadline (Vulnerability Disclosure Policy) is September 11, 2026. Full compliance is required by December 11, 2027.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20vulnerability%20disclosure%20policy%20to%20my%20wordpress%20site%3F\"><h3>How do I add a Vulnerability Disclosure Policy to my WordPress site?<\/h3><\/dt>\n<dd><p>Use the VDP Generator in Erdo CRA Compliance. It creates a ready-to-publish policy document pre-filled with your site details. The plugin also automatically serves it at the standard URL <code>\/.well-known\/security.txt<\/code> so security researchers can find it without you touching your server configuration.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20security.txt%20file%20to%20wordpress%3F\"><h3>How do I add a security.txt file to WordPress?<\/h3><\/dt>\n<dd><p>Erdo CRA Compliance automatically serves an RFC 9116-compliant <code>security.txt<\/code> at <code>yourdomain.com\/.well-known\/security.txt<\/code>. You do not need to create or upload the file manually \u2014 the plugin handles it as soon as you activate it and fill in the Settings tab.<\/p><\/dd>\n<dt id=\"what%20is%20an%20sbom%20and%20why%20do%20i%20need%20one%20for%20eu%20cra%20compliance%3F\"><h3>What is an SBOM and why do I need one for EU CRA compliance?<\/h3><\/dt>\n<dd><p>An SBOM (Software Bill of Materials) is a machine-readable inventory of all software components in your product. The CRA requires vendors to provide an SBOM to document what their software is made of. Erdo CRA Compliance generates a CycloneDX 1.4 JSON SBOM covering WordPress core, all active plugins, and your active theme \u2014 ready to provide to customers or regulators.<\/p><\/dd>\n<dt id=\"how%20do%20i%20check%20if%20my%20wordpress%20plugins%20are%20cra-compliant%3F\"><h3>How do I check if my WordPress plugins are CRA-compliant?<\/h3><\/dt>\n<dd><p>Run the Plugin Risk Scanner in Erdo CRA Compliance. It checks every active plugin against CRA readiness criteria: last updated date, WordPress version lag, PHP requirements, support health, and whether the plugin has been closed or removed from WordPress.org. Each plugin receives a risk rating (LOW \/ MEDIUM \/ HIGH) with specific reasons and recommended actions.<\/p><\/dd>\n<dt id=\"how%20do%20i%20prepare%20my%20wordpress%20site%20for%20gdpr%3F\"><h3>How do I prepare my WordPress site for GDPR?<\/h3><\/dt>\n<dd><p>The GDPR Scanner in Erdo CRA Compliance detects third-party scripts loading on your site \u2014 Google Analytics, Facebook Pixel, HubSpot, Intercom, and others \u2014 and flags them as potential data-handling risks. You get a list of external domains your site contacts, so you can audit your cookie consent setup and data processing agreements.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20guarantee%20eu%20compliance%3F\"><h3>Does this plugin guarantee EU compliance?<\/h3><\/dt>\n<dd><p>No. This plugin provides automated analysis and document templates to help you assess and document your compliance posture. All assessments and generated documents should be reviewed by a qualified legal or compliance professional before regulatory use.<\/p><\/dd>\n<dt id=\"what%20is%20the%20eu%20cyber%20resilience%20act%3F\"><h3>What is the EU Cyber Resilience Act?<\/h3><\/dt>\n<dd><p>The CRA is an EU regulation requiring manufacturers of \"products with digital elements\" (including software) to meet cybersecurity requirements throughout the product lifecycle \u2014 including vulnerability disclosure, security updates, and SBOM documentation.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20multisite%3F\"><h3>Does the plugin work with multisite?<\/h3><\/dt>\n<dd><p>The plugin is designed for single-site installations. Multisite support is not included in this version.<\/p><\/dd>\n<dt id=\"what%20does%20the%20compliance%20score%20mean%3F\"><h3>What does the compliance score mean?<\/h3><\/dt>\n<dd><p>The score (0\u2013100) is calculated as: 100 minus 10 points per HIGH risk finding and 5 points per MEDIUM risk finding, floored at 0. It is an indicative benchmark, not a regulatory certification.<\/p><\/dd>\n<dt id=\"why%20is%20a%20plugin%20showing%20high%20risk%3F\"><h3>Why is a plugin showing HIGH risk?<\/h3><\/dt>\n<dd><p>Common reasons: not updated for over 2 years, tested on a WordPress version 2+ major releases behind current, requires an end-of-life PHP version, or has been removed from WordPress.org.<\/p><\/dd>\n<dt id=\"how%20are%20third-party%20scripts%20detected%20for%20gdpr%3F\"><h3>How are third-party scripts detected for GDPR?<\/h3><\/dt>\n<dd><p>The plugin captures enqueued script sources on frontend page loads and stores them temporarily. This allows the GDPR scanner to identify external domains even when running in the admin context.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>CRA plugin scanner with risk scoring (last updated, WP lag, PHP requirements, support health, closed plugin detection).<\/li>\n<li>GDPR third-party script scanner with frontend capture via wp_footer hook.<\/li>\n<li>NIS2 Article 21 scanner (HTTPS, MFA, backup, WAF, activity log, auto-updates).<\/li>\n<li>Compliance dashboard with animated SVG score ring.<\/li>\n<li>PDF report generation (FPDF, 5-section report).<\/li>\n<li>VDP policy generator.<\/li>\n<li>CycloneDX 1.4 SBOM generator.<\/li>\n<li>RFC 9116 security.txt (auto-served at \/.well-known\/security.txt).<\/li>\n<li>Conformity Declaration template.<\/li>\n<li>REST API endpoint: GET \/wp-json\/erdo-craguard\/v1\/sbom.<\/li>\n<li>Daily and weekly wp_cron scan schedules.<\/li>\n<\/ul>","raw_excerpt":"Prepare WordPress for EU compliance deadlines \u2014 CRA (2027), GDPR &amp; NIS2. Scan plugins, generate policy documents and PDF reports.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/324714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=324714"}],"author":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/erdincbulat"}],"wp:attachment":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=324714"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=324714"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=324714"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=324714"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=324714"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=324714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}