{"id":11239,"date":"2026-05-28T10:30:27","date_gmt":"2026-05-28T02:30:27","guid":{"rendered":"https:\/\/aeosub.com\/csp-violation-reporter\/"},"modified":"2026-05-28T10:30:27","modified_gmt":"2026-05-28T02:30:27","slug":"csp-violation-reporter","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/csp-violation-reporter\/","title":{"rendered":"CSP Violation Reporter"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/csp-violation-reporter.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/guidumasperes\/\" target=\"_blank\" rel=\"noopener\">Guilherme Dumas Peres<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v0.1.1<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">6.5 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-28 1:33am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/csp-violation-reporter\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Collect Content Security Policy violation reports through a WordPress REST endpoint and review them in the admin dashboard.<\/div>\n<p>CSP Violation Reporter adds a public WordPress REST endpoint for browser Content Security Policy violation reports and stores received violations in a local database table.<\/p>\n<p>Reports can be reviewed from Tools &gt; CSP Violations. The plugin supports the modern Reporting API payload format as well as the older <code>csp-report<\/code> JSON shape.<\/p>\n<p>Endpoint:<\/p>\n<pre><code>\/wp-json\/csp-violation-reporter\/v1\/report\n<\/code><\/pre>\n<p>The plugin does not create or modify Content Security Policy headers. Site owners should configure CSP headers in their web server, hosting dashboard, theme, or security tooling.<\/p>\n<p>Example report endpoint configuration:<\/p>\n<pre><code>Content-Security-Policy: default-src 'self'; report-uri https:\/\/example.com\/wp-json\/csp-violation-reporter\/v1\/report\n<\/code><\/pre>\n<p>For the modern Reporting API, use an HTTPS endpoint:<\/p>\n<pre><code>Reporting-Endpoints: csp-endpoint=\"https:\/\/example.com\/wp-json\/csp-violation-reporter\/v1\/report\"\n\nContent-Security-Policy: default-src 'self'; report-to csp-endpoint\n<\/code><\/pre>\n<h3>Privacy<\/h3>\n<p>This plugin stores CSP violation reports submitted by browsers. Stored fields can include the document URL, referrer URL, blocked URI, violated directive, source file, line and column numbers, a user agent string, a salted hash of the remote address, and the raw report payload.<\/p>\n<p>The plugin does not store raw IP addresses and does not transmit report data to external services.<\/p>","protected":false},"excerpt":{"rendered":"<p>Collect Content Security Policy violation reports through a WordPress REST endpoint and review them in the admin dashboard.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[2346,2347,1484,1075,664,555],"class_list":["post-11239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-content-security-policy","tag-csp","tag-reporting","tag-reports","tag-security","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11239"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11239\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}