{"id":342532,"date":"2026-08-17T14:42:48","date_gmt":"2026-08-17T14:42:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mdi-spam-sheriff-for-gravityforms\/"},"modified":"2026-08-17T14:42:40","modified_gmt":"2026-08-17T14:42:40","slug":"mdi-spam-sheriff-for-gravityforms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mdi-spam-sheriff-for-gravityforms\/","author":17476159,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"MDI Spam Sheriff (for GravityForms)","header_author":"Medium Interactive","header_description":"Blocks spam on Gravity Forms by checking every submitted email domain's registration age via RDAP; domains registered too recently to be a legitimate, established sender are blocked.","assets_banners_color":"606262","last_updated":"2026-08-17 14:42:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mediuminteractive.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mediuminteractive","date":"2026-08-17 14:42:40"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3651293,"resolution":"128x128","location":"assets","locale":"","width":512,"height":512}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3651293,"resolution":"772x250","location":"assets","locale":"","width":1500,"height":485}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2182,1655,260453,600,599],"plugin_category":[54],"plugin_contributors":[177069],"plugin_business_model":[],"class_list":["post-342532","plugin","type-plugin","status-publish","hentry","plugin_tags-email-validation","plugin_tags-gravity-forms","plugin_tags-rdap","plugin_tags-security","plugin_tags-spam","plugin_category-security-and-spam-protection","plugin_contributors-mediuminteractive","plugin_committers-mediuminteractive"],"banners":{"banner":"https:\/\/ps.w.org\/mdi-spam-sheriff-for-gravityforms\/assets\/banner-772x250.png?rev=3651293","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mdi-spam-sheriff-for-gravityforms\/assets\/icon-128x128.png?rev=3651293","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Every Email-type field on every enabled Gravity Forms form is checked on submit: the domain's registration date is looked up via RDAP (the free, keyless, standardized successor to WHOIS). If it's younger than your configured threshold (default 160 days), the submission is blocked with a configurable message.<\/p>\n\n<p>If the RDAP lookup itself is inconclusive (timeout, unsupported TLD), the plugin falls back to a basic MX\/A\/AAAA record check - if the domain has no mail-capable DNS at all, it's blocked; otherwise it's allowed through rather than blocking on missing information.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin performs domain age verification by querying RDAP (Registration Data Access Protocol) services, the standardized successor to WHOIS.<\/p>\n\n<ol>\n<li><p>IANA RDAP Bootstrap Registry\nThis plugin fetches a public bootstrap file from IANA to determine which RDAP server is authoritative for a given domain's TLD. This happens automatically whenever a domain needs to be looked up and no cached bootstrap data exists (cached for 7 days).\nData sent: none beyond the standard HTTP request to fetch the static file (no user data is sent).\nTerms of Service: https:\/\/www.icann.org\/en\/data-protection\/terms-of-service\nPrivacy Policy: https:\/\/www.icann.org\/en\/data-protection\/privacy-policy<\/p><\/li>\n<li><p>RDAP registry servers (varies by TLD)\nWhen a user submits an email address, this plugin extracts the domain portion and sends it to the RDAP server responsible for that domain's TLD, in order to retrieve the domain's registration date and estimate its age. This is used as a fraud\/spam signal in form submissions.\nData sent: only the domain name (e.g. \"example.com\") \u2014 never the full email address or local part \u2014 and only when a domain hasn't been checked in the last 30 days (cached).\nService operator: varies by TLD (e.g. Verisign for .com\/.net, PIR for .org, etc.), as determined by IANA's bootstrap registry. \nRDAP operators: https:\/\/www.iana.org\/assignments\/rdap-dns\/rdap-dns.xhtml, and most operate under registry-standard terms similar to Verisign's: https:\/\/www.verisign.com\/en_US\/domain-names\/register-domain-name\/rdap\/index.xhtml<\/p><\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>gf-fuzzy-domain-validation<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin. Requires Gravity Forms to be installed and active.<\/li>\n<li>Go to Domain Validation &gt; Settings to set your age threshold and\ncustomize the error message.<\/li>\n<li>Check Domain Validation &gt; Logs to see every check (blocked and clean),\nincluding the RDAP lookup status, any connectivity error detail, and\nthe MX fallback result, for review.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Blocks spam on Gravity Forms by checking every submitted email domain&#039;s registration age via RDAP; recently-registered domains are blocked.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342532","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=342532"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mediuminteractive"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342532"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342532"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342532"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342532"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342532"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}