[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fs6ZbIvQdaGn4Uz6HTHzHQb9AeiNu0GJc_4yqaaeIBYs":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":107,"crawl_stats":37,"alternatives":112,"analysis":202,"fingerprints":707},"age-gate","Age Gate","3.7.2","Phil","https:\u002F\u002Fprofiles.wordpress.org\u002Fphilsbury\u002F","\u003Cp>There are many uses for restricting content based on age, be it movie trailers, beer or other adult themes. This plugin allows you to set a restriction on what content can been seen or restricted based on the age of the user.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Ask users to verify their age on page load\u003C\u002Fli>\n\u003Cli>SEO Friendly – common bots and crawlers are omitted from age checks\u003C\u002Fli>\n\u003Cli>Ability to add custom user agents for less common bots\u003C\u002Fli>\n\u003Cli>Shortcode for in content restrictions\u003C\u002Fli>\n\u003Cli>Choose to restrict an entire site, or selected content\u003C\u002Fli>\n\u003Cli>Select a different age on individual content\u003C\u002Fli>\n\u003Cli>Allow certain content to not be age gated under “all content” mode\u003C\u002Fli>\n\u003Cli>Three choices for input; dropdowns, input fields or a simple yes\u002Fno button\u003C\u002Fli>\n\u003Cli>Customise the order of the inputs based on your region (DD MM YYYY or MM DD YYYY)\u003C\u002Fli>\n\u003Cli>Allow a “remember me” check box if desired\u003C\u002Fli>\n\u003Cli>Ability to omit logged in users from being checked\u003C\u002Fli>\n\u003Cli>Add your own logo\u003C\u002Fli>\n\u003Cli>Update the text displayed on the entry form\u003C\u002Fli>\n\u003Cli>Select background colour\u002Fimage, foreground colour and text colour\u003C\u002Fli>\n\u003Cli>Use built in styling out of the box, or your own custom style\u003C\u002Fli>\n\u003Cli>Ability to add legal note or information to the bottom of the form\u003C\u002Fli>\n\u003Cli>Redirect failed logins to a URL of your choice e.g. an alcohol awareness website.\u003C\u002Fli>\n\u003Cli>Ability to use a non caching version\u003C\u002Fli>\n\u003Cli>Various hooks to add even more customisation such as additional form fields\u003C\u002Fli>\n\u003Cli>Compatible with multilingual plugins WPML, Polylang (2.3+), WP Multilang\u003C\u002Fli>\n\u003C\u002Ful>\n","A plugin to check the age of a visitor before view site or specified content",40000,1356527,92,64,"2025-10-22T19:24:00.000Z","6.8.5","6.0.0","7.4",[20,4,21,22,23],"adults-only","age-restriction","age-verification","age-verify","https:\u002F\u002Fagegate.io\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate.3.7.2.zip",90,5,0,"2025-04-09 00:00:00","2026-03-15T15:16:48.613Z",[32,48,64,79,94],{"id":33,"url_slug":34,"title":35,"description":36,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":29,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2025-31012","age-gate-missing-authorization","Age Gate \u003C= 3.5.4 - Missing Authorization","The Age Gate plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on the store() function in all versions up to, and including, 3.5.4. This makes it possible for unauthenticated attackers to update settings.",null,"\u003C=3.5.4","3.6.0","medium",5.3,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:N","Missing Authorization","2025-04-15 13:04:38",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fe64f3e2b-7c82-4b30-bb3e-b84916e29232?source=api-prod",7,{"id":49,"url_slug":50,"title":51,"description":52,"plugin_slug":4,"theme_slug":37,"affected_versions":53,"patched_in_version":54,"severity":55,"cvss_score":56,"cvss_vector":57,"vuln_type":58,"published_date":59,"updated_date":60,"references":61,"days_to_patch":63},"CVE-2025-2505","age-gate-unauthenticated-local-php-file-inclusion-via-lang","Age Gate \u003C= 3.5.3 - Unauthenticated Local PHP File Inclusion via 'lang'","The Age Gate plugin for WordPress is vulnerable to Local PHP File Inclusion in all versions up to, and including, 3.5.3 via the 'lang' parameter. This makes it possible for unauthenticated attackers to include and execute arbitrary PHP files on the server, allowing the execution of code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.","\u003C=3.5.3","3.5.4","critical",9.8,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H","Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","2025-03-19 00:00:00","2025-03-20 07:29:58",[62],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fd6ac2996-098f-474c-b44e-78d5af7b503a?source=api-prod",1,{"id":65,"url_slug":66,"title":67,"description":68,"plugin_slug":4,"theme_slug":37,"affected_versions":69,"patched_in_version":70,"severity":40,"cvss_score":71,"cvss_vector":72,"vuln_type":73,"published_date":74,"updated_date":75,"references":76,"days_to_patch":78},"WF-7d047fe7-bf00-4f93-91d2-c5da41664bfc-age-gate","age-gate-open-redirect","Age Gate \u003C= 2.13.4 - Open Redirect","The Age Gate plugin for WordPress is vulnerable to Open Redirects in versions up to, and including, 2.13.4 via the '_wp_http_referer' parameter. This makes it possible for unauthenticated attackers to send users redirection links to hostile sites by using the website's address.","\u003C2.13.5","2.13.5",4.7,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:N\u002FI:L\u002FA:N","URL Redirection to Untrusted Site ('Open Redirect')","2022-11-27 00:00:00","2024-01-22 19:56:02",[77],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F7d047fe7-bf00-4f93-91d2-c5da41664bfc?source=api-prod",422,{"id":80,"url_slug":81,"title":82,"description":83,"plugin_slug":4,"theme_slug":37,"affected_versions":84,"patched_in_version":85,"severity":86,"cvss_score":87,"cvss_vector":88,"vuln_type":89,"published_date":90,"updated_date":75,"references":91,"days_to_patch":93},"CVE-2021-36901","age-gate-cross-site-scripting-via-data-import","Age Gate \u003C= 2.17.0 - Cross-Site Scripting via Data Import","The Age Gate plugin for WordPress is vulnerable to Stored Cross-Site Scripting via data imports in versions up to, and including, 2.17.0 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","\u003C=2.17.0","2.17.1","high",7.2,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2022-06-10 08:45:00",[92],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F36304098-fea7-4e67-a138-5670761c6338?source=api-prod",592,{"id":95,"url_slug":96,"title":97,"description":98,"plugin_slug":4,"theme_slug":37,"affected_versions":99,"patched_in_version":100,"severity":40,"cvss_score":101,"cvss_vector":102,"vuln_type":89,"published_date":103,"updated_date":75,"references":104,"days_to_patch":106},"WF-103cbd07-4698-4b64-820d-d2df3fce95da-age-gate","age-gate-stored-cross-site-scripting","Age Gate \u003C= 2.16.3 - Stored Cross-Site Scripting","The Age Gate plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the ‘Additional content’ field in versions up to, and including, 2.16.3 due to insufficient input sanitization and output escaping. This makes it possible for  authenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","\u003C2.16.4","2.16.4",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","2021-10-06 00:00:00",[105],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F103cbd07-4698-4b64-820d-d2df3fce95da?source=api-prod",839,{"slug":108,"display_name":7,"profile_url":8,"plugin_count":63,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":109,"trust_score":110,"computed_at":111},"philsbury",372,72,"2026-04-04T05:51:55.923Z",[113,132,153,170,187],{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":123,"num_ratings":63,"last_updated":124,"tested_up_to":125,"requires_at_least":126,"requires_php":127,"tags":128,"homepage":130,"download_link":131,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"age-verification-screen-for-woocommerce","Age Verification Screen for WooCommerce","1.1.1","meowcrew","https:\u002F\u002Fprofiles.wordpress.org\u002Fmeowcrew\u002F","\u003Cp>Age Verification Screen for WooCommerce lets you restrict your website or particular pages of it using the age-restriction screen. Easily install and configure pop-up look and texts via customizer tool.\u003C\u002Fp>\n\u003Ch4>Major plugin features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Modal window or full-page pop-up to ask your users to verify their age when the page loads.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Show the age restriction pop-up only on those pages where you need it.\u003C\u002Fstrong> You can choose what pages, products, categories, or any other post types or taxonomies would be age-restricted.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Select the minimum allowed age for your website.\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multiple ways to check user age.\u003C\u002Fstrong> You can choose between two methods of age verification – a simple checkbox or confirm\\cancel buttons.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Set up the look and feel of restriction pop-up via live customizer.\u003C\u002Fstrong> Select background color or image, blur opacity, text color, etc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>All texts are editable through the customizer.\u003C\u002Fstrong> You are able to edit the heading, description, texts on buttons, etc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Redirect users on failure.\u003C\u002Fstrong> Here you can find two default options – get the user to the previous page or any other page of your site (e.g., page w\u002F your age policy).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accepts your theme styling by default.\u003C\u002Fstrong> No need to work hard on pop-up styling; it fits your website style perfectly right off the bat.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manage cookie lifetime.\u003C\u002Fstrong> Age verification pop-up should not appear once more for those who previously passed the confirmation within XX days (established by you).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Additional features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>An additional method to check the age. One more way to prevent users’ age is the date of birth picker.\u003C\u002Fli>\n\u003Cli>Redirect to external URL. If the user doesn’t reach the minimum required age, you can redirect him to the external website instead of your internal page.\u003C\u002Fli>\n\u003Cli>Age-restriction for custom taxonomies and custom post types. In case you need to restrict particular custom taxonomies or post types instead of regular ones (like product categories, products, pages, etc).\u003C\u002Fli>\n\u003Cli>Assistance from plugin developers first hand.\u003C\u002Fli>\n\u003C\u002Ful>\n","Easily add a customizable age verification screen to your store.",300,5725,20,"2024-11-01T13:50:00.000Z","6.7.5","5.6.1","5.6",[4,129,21,22,23],"age-popup","https:\u002F\u002Falpakawp.com\u002Fplugins\u002Fage-verification-screen-for-woocommerce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-verification-screen-for-woocommerce.1.1.1.zip",{"slug":133,"name":134,"version":135,"author":136,"author_profile":137,"description":138,"short_description":139,"active_installs":140,"downloaded":141,"rating":142,"num_ratings":143,"last_updated":144,"tested_up_to":145,"requires_at_least":146,"requires_php":147,"tags":148,"homepage":145,"download_link":151,"security_score":152,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"age-gate-lite","Age Gate Lite","0.0.7","SiD","https:\u002F\u002Fprofiles.wordpress.org\u002Fsiddhu09rocks\u002F","\u003Cp>If your content or products are about cannabis, alcohol, gambling or other adult content.\u003C\u002Fp>\n\u003Cp>Age Gate Lite makes it easier then ever to configure and style an age restriction pop up to protect younger audience.\u003C\u002Fp>\n\u003Cp>It is designed to be user friendly, simple lightweight and only requires users to confirm their age ( Yes \u002F No ).\u003C\u002Fp>\n\u003Cp>This plugin is absolutely, 100% free.\u003C\u002Fp>\n\u003Cp>Success message section included can be used for Email \u002F Newsletter Opt-in or Promotional messages.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Devs 👨‍💻\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Avaliable JS Event Listeners – agl_passed & agl_failed.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cscript>\n    document.addEventListener(\"agl_passed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Passed ;\n    });\n\n    document.addEventListener(\"agl_failed\", function() {\n        \u002F\u002F Insert yor code for Age Gate Failed');\n    });\n\u003C\u002Fscript>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","A lightweight, customisable age gate to lock content from younger audience.",2000,14687,100,6,"2022-07-13T01:28:00.000Z","","4.0","5.2.4",[149,4,22,23,150],"age","cannabis","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate-lite.zip",85,{"slug":154,"name":155,"version":156,"author":157,"author_profile":158,"description":159,"short_description":160,"active_installs":161,"downloaded":162,"rating":142,"num_ratings":27,"last_updated":163,"tested_up_to":164,"requires_at_least":165,"requires_php":127,"tags":166,"homepage":168,"download_link":169,"security_score":152,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"age-gate-plus","Age Gator","1.06","Chris Geelhoed","https:\u002F\u002Fprofiles.wordpress.org\u002Fchrisgeelhoed\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.age-gator.com\u002F\" rel=\"nofollow ugc\">Age Gator\u003C\u002Fa> is a WordPress plugin specifically designed to guard sensitive content (alcohol, gambling, x-rated, etc) from underage users. Featuring an abundance of customizable settings, the display and behavior of the overlay can be easily configured to suit a variety of use cases.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FOHTIHpilAaM?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Select from templates for Beer, Smoking, Vaping, Marijuana, or Adult or customize for your unique use case\u003C\u002Fli>\n\u003Cli>Checks age of user before showing content\u003C\u002Fli>\n\u003Cli>Edit appearance and text directly from the Customizer live preview screen\u003C\u002Fli>\n\u003Cli>User prompt may be set to a yes\u002Fno button, age entry, date of birthday entry, or confirmation checkbox\u003C\u002Fli>\n\u003Cli>Optional Retry button\u003C\u002Fli>\n\u003Cli>Remember previously passed users\u003C\u002Fli>\n\u003Cli>Set previously passed user bypass expiration time\u003C\u002Fli>\n\u003Cli>Limit number of attempts\u003C\u002Fli>\n\u003Cli>Ignore logged in users\u003C\u002Fli>\n\u003Cli>Customized failure and success messages\u003C\u002Fli>\n\u003Cli>Show age gate on all pages, all pages except those specified, or only on pages specified (Whitelist or Blacklist)\u003C\u002Fli>\n\u003Cli>Wilcard support for setting whitelisted and blacklisted pages\u003C\u002Fli>\n\u003Cli>Caching compatible\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.age-gator.com\u002F#feature-details\" rel=\"nofollow ugc\">Preview Features\u003C\u002Fa>\u003C\u002Fp>\n","Age Gator is a Wordpress plugin specifically designed to guard sensitive content (alcohol, gambling, x-rated, etc) from underage users.",400,5100,"2020-01-18T23:05:00.000Z","5.3.21","5.0",[20,149,22,23,167],"modal","https:\u002F\u002Fwww.age-gator.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fage-gate-plus.zip",{"slug":171,"name":172,"version":173,"author":174,"author_profile":175,"description":176,"short_description":177,"active_installs":28,"downloaded":178,"rating":28,"num_ratings":28,"last_updated":145,"tested_up_to":179,"requires_at_least":180,"requires_php":18,"tags":181,"homepage":184,"download_link":185,"security_score":142,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":186},"imeow-18plus","Imeow 18plus","1.0.2","Imeow","https:\u002F\u002Fprofiles.wordpress.org\u002Fimeowstudio\u002F","\u003Cp>Simple plugin that add a popup window for age confirmation to your website.\u003C\u002Fp>\n\u003Cp>Plugin has been translated in this languages:\u003Cbr \u002F>\n*   Czech 🇨🇿\u003Cbr \u002F>\n*   English 🇺🇸\u003C\u002Fp>\n\u003Cp>Very simple code, we want keep it clean and work. No user settings needed – just activate and enjoy. 😇\u003C\u002Fp>\n","A simple plugin that adds a popup window for age confirmation (18 years and older) to your website. Available in CZ and EN language.",1666,"6.4.8","6.0",[20,22,23,182,183],"fraud-prevention","verification","https:\u002F\u002Fimeow.cz","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimeow-18plus.1.0.2.zip","2026-03-15T10:48:56.248Z",{"slug":188,"name":189,"version":190,"author":191,"author_profile":192,"description":193,"short_description":194,"active_installs":28,"downloaded":195,"rating":28,"num_ratings":28,"last_updated":145,"tested_up_to":196,"requires_at_least":180,"requires_php":18,"tags":197,"homepage":200,"download_link":201,"security_score":142,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":186},"vishavjeet-age-consent-banner","Vishavjeet Age Consent Banner – Restrict Website Access by Age Verification","1.0.0","wpvishavjeet","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpvishavjeet\u002F","\u003Cp>Age Consent Banner is a WordPress plugin that restricts access to your website until users confirm their age. It is suitable for websites offering age-restricted content, products, or services such as alcohol, tobacco, or adult material.\u003C\u002Fp>\n\u003Cp>The plugin is fully customizable from the WordPress admin panel, allowing you to control text, colors, minimum age, session duration, and page exclusions.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fully customizable text, colors, and labels\u003C\u002Fli>\n\u003Cli>Session-based age verification\u003C\u002Fli>\n\u003Cli>Minimal data storage for functionality\u003C\u002Fli>\n\u003Cli>Responsive design for all devices\u003C\u002Fli>\n\u003Cli>Simple and intuitive admin settings\u003C\u002Fli>\n\u003Cli>Page exclusion support\u003C\u002Fli>\n\u003Cli>Configurable session duration\u003C\u002Fli>\n\u003Cli>Built following WordPress coding standards\u003C\u002Fli>\n\u003Cli>Secure data handling using WordPress APIs\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Adult content websites\u003C\u002Fli>\n\u003Cli>Alcohol and tobacco stores\u003C\u002Fli>\n\u003Cli>Age-restricted product shops\u003C\u002Fli>\n\u003Cli>Dating websites\u003C\u002Fli>\n\u003Cli>Cannabis \u002F CBD websites\u003C\u002Fli>\n\u003Cli>Gaming websites with mature content\u003C\u002Fli>\n\u003Cli>Any website requiring age compliance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Customization Options\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Heading and description text\u003C\u002Fli>\n\u003Cli>Button labels\u003C\u002Fli>\n\u003Cli>Background, text, and button colors\u003C\u002Fli>\n\u003Cli>Minimum age requirement\u003C\u002Fli>\n\u003Cli>Session duration (1–365 days)\u003C\u002Fli>\n\u003Cli>Page exclusions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Statistics\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>View active verification sessions\u003C\u002Fli>\n\u003Cli>Track daily, weekly, and monthly verification counts\u003C\u002Fli>\n\u003Cli>View recent verification activity\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Data & Security\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Uses secure cookies for session handling\u003C\u002Fli>\n\u003Cli>Prepared SQL queries\u003C\u002Fli>\n\u003Cli>Escaped outputs to prevent XSS\u003C\u002Fli>\n\u003Cli>Nonces for CSRF protection\u003C\u002Fli>\n\u003Cli>Automatic cleanup of expired sessions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>This plugin stores the following data for functional purposes only:\u003Cbr \u002F>\n* Anonymous session identifiers\u003Cbr \u002F>\n* IP addresses\u003Cbr \u002F>\n* Verification timestamps\u003Cbr \u002F>\n* Session expiration data\u003C\u002Fp>\n\u003Cp>All stored data is automatically deleted after expiration.\u003C\u002Fp>\n\u003Ch3>Developer Information\u003C\u002Fh3>\n\u003Cp>Developed by \u003Cstrong>Vishavjeet Choubey\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Website: https:\u002F\u002Fvishavjeet.in\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n","Restrict website access until visitors confirm their age. Ideal for age-restricted content and compliance needs.",114,"6.9.4",[20,198,4,199,22],"age-consent","age-restricted","https:\u002F\u002Fwww.vishavjeet.in\u002Fage-consent-banner\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvishavjeet-age-consent-banner.1.0.0.zip",{"attackSurface":203,"codeSignals":469,"taintFlows":690,"riskAssessment":691,"analyzedAt":706},{"hooks":204,"ajaxHandlers":449,"restRoutes":464,"shortcodes":465,"cronEvents":466,"entryPointCount":467,"unprotectedCount":468},[205,211,215,218,224,228,232,236,242,245,248,250,252,257,261,265,269,273,277,280,285,289,292,296,298,302,303,308,314,317,321,325,328,331,336,339,342,345,348,352,355,358,361,365,369,372,374,377,381,384,387,390,392,394,395,396,399,403,406,408,411,415,419,423,427,431,435,437,440,443,447],{"type":206,"name":207,"callback":208,"file":209,"line":210},"action","admin_notices","closure","age-gate.php",30,{"type":206,"name":212,"callback":208,"file":213,"line":214},"init","src\\Admin\\Admin.php",26,{"type":206,"name":207,"callback":216,"file":213,"line":217},"notices",39,{"type":219,"name":220,"callback":221,"priority":222,"file":213,"line":223},"filter","plugin_row_meta","websiteLink",10,43,{"type":206,"name":225,"callback":208,"priority":63,"file":226,"line":227},"admin_print_footer_scripts","src\\Admin\\Controller\\RestrictionController.php",29,{"type":206,"name":229,"callback":230,"file":231,"line":214},"save_post","store","src\\Admin\\Post\\Edit.php",{"type":206,"name":233,"callback":234,"priority":222,"file":231,"line":235},"add_meta_boxes","addMetaBox",27,{"type":219,"name":237,"callback":238,"priority":239,"file":240,"line":241},"manage_posts_columns","column",10000,"src\\Admin\\Post\\ListTable.php",23,{"type":219,"name":243,"callback":238,"priority":239,"file":240,"line":244},"manage_pages_columns",24,{"type":206,"name":246,"callback":247,"priority":222,"file":240,"line":214},"manage_posts_custom_column","data",{"type":206,"name":249,"callback":247,"priority":222,"file":240,"line":235},"manage_pages_custom_column",{"type":206,"name":212,"callback":251,"file":240,"line":210},"actions",{"type":206,"name":253,"callback":254,"file":255,"line":256},"admin_init","registerFields","src\\Admin\\Taxonomy\\Term.php",21,{"type":206,"name":258,"callback":206,"file":259,"line":260},"admin_post_age_gate_export","src\\Admin\\Tools\\Export.php",16,{"type":206,"name":262,"callback":206,"file":263,"line":264},"admin_post_age_gate_import","src\\Admin\\Tools\\Import.php",17,{"type":206,"name":266,"callback":267,"file":268,"line":264},"admin_post_age_gate_reset","resetSettings","src\\Admin\\Tools\\Reset.php",{"type":206,"name":270,"callback":271,"file":268,"line":272},"admin_post_age_gate_reset_post","resetPosts",18,{"type":206,"name":212,"callback":274,"priority":63,"file":275,"line":276},"updateCheck","src\\Admin\\Update.php",9,{"type":206,"name":278,"callback":279,"file":275,"line":222},"in_plugin_update_message-age-gate\u002Fage-gate.php","updateWarnings",{"type":206,"name":281,"callback":282,"priority":283,"file":284,"line":256},"admin_bar_menu","toolbarLink",1000,"src\\Admin\\User\\Toolbar.php",{"type":206,"name":286,"callback":287,"file":284,"line":288},"wp_enqueue_scripts","enqueue",22,{"type":206,"name":290,"callback":212,"file":291,"line":264},"wp","src\\App\\AgeGate.php",{"type":206,"name":293,"callback":294,"file":295,"line":276},"plugins_loaded","registerDomain","src\\App\\I18n.php",{"type":206,"name":290,"callback":208,"priority":28,"file":297,"line":260},"src\\Bootstrap.php",{"type":206,"name":299,"callback":300,"file":301,"line":272},"wp_head","user","src\\Controller\\JsController.php",{"type":206,"name":286,"callback":208,"priority":63,"file":301,"line":123},{"type":219,"name":304,"callback":305,"file":306,"line":307},"template_include","template","src\\Controller\\StandardController.php",82,{"type":206,"name":309,"callback":310,"priority":311,"file":312,"line":313},"admin_enqueue_scripts","admin",99,"src\\Enqueue\\Enqueue.php",12,{"type":206,"name":286,"callback":315,"file":312,"line":316},"assets",13,{"type":206,"name":318,"callback":319,"file":320,"line":241},"age_gate\u002Fbefore_render","pauseDiviCssCache","src\\Integration\\Divi.php",{"type":206,"name":299,"callback":322,"priority":323,"file":320,"line":324},"wp_custom_css_cb",101,56,{"type":219,"name":326,"callback":208,"file":327,"line":272},"age_gate\u002Finit\u002Fcontent","src\\Integration\\Woof.php",{"type":206,"name":212,"callback":208,"file":329,"line":330},"src\\Legacy\\Check.php",15,{"type":206,"name":332,"callback":333,"file":334,"line":335},"age_gate\u002Fvalidation\u002Fvalidators","addLegacyValidators","src\\Legacy\\Deprecated.php",14,{"type":219,"name":337,"callback":338,"file":334,"line":330},"age_gate\u002Fvalidation\u002Frules","addLegacyRules",{"type":206,"name":340,"callback":341,"file":334,"line":272},"age_gate\u002Fcustom\u002Fafter","addLegacyAfter",{"type":206,"name":343,"callback":344,"file":334,"line":288},"age_gate\u002Fcustom\u002Fbefore","addLegacyBefore",{"type":219,"name":346,"callback":347,"file":334,"line":244},"age_gate\u002Fvalidation\u002Fmessages","addLegacyMessages",{"type":219,"name":349,"callback":350,"file":334,"line":351},"age_gate\u002Fvalidation\u002Fnames","addLegacyNames",25,{"type":219,"name":353,"callback":354,"priority":222,"file":334,"line":214},"age_gate\u002Fcookie\u002Fset","filterLegacyCookie",{"type":219,"name":356,"callback":357,"priority":63,"file":334,"line":227},"age_gate\u002Funrestricted\u002Flogged","addLegacyLogged",{"type":219,"name":359,"callback":360,"priority":63,"file":334,"line":210},"age_gate\u002Frestricted","addLegacyRestricted",{"type":219,"name":362,"callback":363,"priority":63,"file":334,"line":364},"age_gate\u002Funrestricted","addLegacyUnrestricted",31,{"type":219,"name":366,"callback":367,"priority":63,"file":334,"line":368},"age_gate\u002Flogo\u002Fsrc","addLegacyLogo",34,{"type":206,"name":286,"callback":315,"priority":63,"file":370,"line":371},"src\\Presentation\\FocusTrap.php",11,{"type":206,"name":286,"callback":315,"priority":63,"file":373,"line":371},"src\\Presentation\\Interaction.php",{"type":206,"name":299,"callback":315,"priority":375,"file":376,"line":335},3,"src\\Presentation\\Preload.php",{"type":206,"name":378,"callback":379,"priority":222,"file":380,"line":371},"age_gate\u002Fform","form","src\\Presentation\\Template.php",{"type":206,"name":382,"callback":383,"priority":28,"file":380,"line":313},"age_gate\u002Fform\u002Fopen","open",{"type":206,"name":385,"callback":386,"file":380,"line":316},"age_gate\u002Fform\u002Fclose","close",{"type":206,"name":388,"callback":389,"priority":371,"file":380,"line":335},"age_gate\u002Ffields","hidden",{"type":206,"name":340,"callback":391,"priority":28,"file":380,"line":264},"extraWrapperOpen",{"type":206,"name":340,"callback":393,"file":380,"line":272},"extraWrapperClose",{"type":206,"name":343,"callback":391,"priority":28,"file":380,"line":288},{"type":206,"name":343,"callback":393,"file":380,"line":241},{"type":206,"name":397,"callback":398,"file":380,"line":235},"age_gate\u002Flogo","age_gate_template_logo",{"type":206,"name":400,"callback":401,"file":380,"line":402},"age_gate\u002Fheadline","age_gate_template_headline",28,{"type":206,"name":404,"callback":405,"file":380,"line":227},"age_gate\u002Fsubheadline","age_gate_template_subheadline",{"type":206,"name":388,"callback":407,"file":380,"line":210},"age_gate_template_fields",{"type":206,"name":409,"callback":410,"priority":123,"file":380,"line":364},"age_gate\u002Ferrors","age_gate_template_errors",{"type":206,"name":412,"callback":413,"file":380,"line":414},"age_gate\u002Fsubmit","age_gate_template_submit",32,{"type":206,"name":416,"callback":417,"file":380,"line":418},"age_gate\u002Fadditional","age_gate_template_additional",33,{"type":206,"name":420,"callback":421,"priority":330,"file":380,"line":422},"age_gate\u002Fremember","age_gate_template_remember",35,{"type":206,"name":424,"callback":425,"file":380,"line":426},"age_gate\u002Ffields\u002Fage_field","age_gate_template_age_field",36,{"type":206,"name":428,"callback":429,"file":380,"line":430},"age_gate\u002Fform\u002Fbackground","renderVideo",37,{"type":219,"name":432,"callback":433,"priority":283,"file":434,"line":123},"wpseo_title","returnPageTitle","src\\Presentation\\Title.php",{"type":219,"name":436,"callback":433,"priority":283,"file":434,"line":256},"rank_math\u002Ffrontend\u002Ftitle",{"type":219,"name":438,"callback":439,"priority":283,"file":434,"line":288},"document_title_parts","changePageTitle",{"type":219,"name":441,"callback":442,"priority":222,"file":434,"line":241},"wp_title","changeDefaultTitle",{"type":206,"name":444,"callback":445,"file":446,"line":256},"rest_api_init","register","src\\Routes\\Rest\\Admin\\Term.php",{"type":206,"name":444,"callback":445,"file":448,"line":272},"src\\Routes\\Rest\\Check.php",[450,456,459,463],{"action":451,"nopriv":452,"callback":453,"hasNonce":454,"hasCapCheck":454,"file":455,"line":335},"ag_clear_legacy_css",false,"removeLegacyCss",true,"src\\Admin\\Ajax.php",{"action":457,"nopriv":452,"callback":458,"hasNonce":454,"hasCapCheck":454,"file":455,"line":330},"age_gate_store_terms","storeTerms",{"action":460,"nopriv":452,"callback":461,"hasNonce":452,"hasCapCheck":452,"file":329,"line":462},"ag_check","check",19,{"action":460,"nopriv":454,"callback":461,"hasNonce":452,"hasCapCheck":452,"file":329,"line":123},[],[],[],4,2,{"dangerousFunctions":470,"sqlUsage":471,"outputEscaping":480,"fileOperations":63,"externalRequests":28,"nonceChecks":276,"capabilityChecks":579,"bundledLibraries":689},[],{"prepared":28,"raw":375,"locations":472},[473,476,478],{"file":268,"line":474,"context":475},68,"$wpdb->query() with variable interpolation",{"file":268,"line":477,"context":475},69,{"file":268,"line":479,"context":475},70,{"escaped":481,"rawEcho":482,"locations":483},322,143,[484,486,488,490,492,494,495,497,499,501,502,505,506,507,509,511,512,513,515,516,517,519,521,522,523,525,527,529,530,532,533,535,537,539,541,542,544,545,546,547,549,550,552,554,556,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,576,578,580,582,584,586,588,590,591,593,595,596,597,598,600,602,603,604,605,606,607,608,610,612,613,614,616,617,619,620,621,622,624,626,627,629,630,632,633,634,636,637,639,640,641,642,643,644,646,647,649,650,652,654,656,657,658,659,660,661,663,664,666,667,668,670,671,672,673,675,676,677,679,680,682,683,684,685,686,687,688],{"file":209,"line":364,"context":485},"raw output",{"file":213,"line":487,"context":485},55,{"file":213,"line":489,"context":485},75,{"file":213,"line":491,"context":485},79,{"file":231,"line":493,"context":485},136,{"file":240,"line":474,"context":485},{"file":255,"line":496,"context":485},66,{"file":259,"line":498,"context":485},65,{"file":284,"line":500,"context":485},60,{"file":301,"line":489,"context":485},{"file":503,"line":504,"context":485},"src\\Presentation\\ClassNames.php",476,{"file":376,"line":123,"context":485},{"file":376,"line":227,"context":485},{"file":380,"line":508,"context":485},124,{"file":510,"line":222,"context":485},"src\\Resources\\views\\admin\\default.php",{"file":510,"line":313,"context":485},{"file":510,"line":500,"context":485},{"file":514,"line":244,"context":485},"src\\Resources\\views\\admin\\layouts\\default.php",{"file":514,"line":214,"context":485},{"file":514,"line":210,"context":485},{"file":518,"line":27,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\checkbox.php",{"file":520,"line":313,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\image.php",{"file":520,"line":316,"context":485},{"file":520,"line":335,"context":485},{"file":524,"line":27,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\input.php",{"file":526,"line":364,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\paginated.php",{"file":526,"line":528,"context":485},38,{"file":526,"line":217,"context":485},{"file":526,"line":531,"context":485},45,{"file":526,"line":487,"context":485},{"file":526,"line":534,"context":485},57,{"file":536,"line":467,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\select.php",{"file":538,"line":467,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\textarea.php",{"file":540,"line":276,"context":485},"src\\Resources\\views\\admin\\partials\\fields\\wrapper.php",{"file":540,"line":272,"context":485},{"file":543,"line":467,"context":485},"src\\Resources\\views\\admin\\post\\list-column.php",{"file":543,"line":47,"context":485},{"file":543,"line":276,"context":485},{"file":543,"line":313,"context":485},{"file":548,"line":468,"context":485},"src\\Resources\\views\\admin\\post\\meta\\age.php",{"file":548,"line":468,"context":485},{"file":551,"line":256,"context":485},"src\\Resources\\views\\admin\\post\\meta-box.php",{"file":553,"line":468,"context":485},"src\\Resources\\views\\admin\\term\\add-wrapper.php",{"file":555,"line":467,"context":485},"src\\Resources\\views\\admin\\term\\edit-wrapper.php",{"file":557,"line":467,"context":485},"src\\Resources\\views\\admin\\troubleshooting.php",{"file":557,"line":143,"context":485},{"file":557,"line":276,"context":485},{"file":557,"line":371,"context":485},{"file":557,"line":335,"context":485},{"file":557,"line":260,"context":485},{"file":557,"line":272,"context":485},{"file":557,"line":123,"context":485},{"file":557,"line":288,"context":485},{"file":557,"line":244,"context":485},{"file":557,"line":214,"context":485},{"file":557,"line":402,"context":485},{"file":557,"line":210,"context":485},{"file":557,"line":414,"context":485},{"file":557,"line":368,"context":485},{"file":557,"line":426,"context":485},{"file":557,"line":528,"context":485},{"file":557,"line":575,"context":485},40,{"file":557,"line":577,"context":485},42,{"file":557,"line":579,"context":485},44,{"file":557,"line":581,"context":485},46,{"file":557,"line":583,"context":485},48,{"file":557,"line":585,"context":485},50,{"file":557,"line":587,"context":485},52,{"file":557,"line":589,"context":485},54,{"file":557,"line":324,"context":485},{"file":557,"line":592,"context":485},58,{"file":557,"line":594,"context":485},59,{"file":557,"line":594,"context":485},{"file":557,"line":500,"context":485},{"file":557,"line":500,"context":485},{"file":557,"line":599,"context":485},62,{"file":557,"line":601,"context":485},63,{"file":557,"line":601,"context":485},{"file":557,"line":14,"context":485},{"file":557,"line":14,"context":485},{"file":557,"line":496,"context":485},{"file":557,"line":474,"context":485},{"file":557,"line":477,"context":485},{"file":609,"line":467,"context":485},"src\\Resources\\views\\public\\age-gate.php",{"file":609,"line":611,"context":485},8,{"file":609,"line":276,"context":485},{"file":609,"line":335,"context":485},{"file":615,"line":468,"context":485},"src\\Resources\\views\\public\\layouts\\js.php",{"file":615,"line":467,"context":485},{"file":618,"line":468,"context":485},"src\\Resources\\views\\public\\layouts\\standard.php",{"file":618,"line":468,"context":485},{"file":618,"line":335,"context":485},{"file":618,"line":330,"context":485},{"file":623,"line":468,"context":485},"src\\Resources\\views\\public\\partials\\decoration\\content.php",{"file":625,"line":468,"context":485},"src\\Resources\\views\\public\\partials\\decoration\\headline.php",{"file":625,"line":375,"context":485},{"file":628,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\decoration\\loader.php",{"file":628,"line":467,"context":485},{"file":631,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\decoration\\logo.php",{"file":631,"line":375,"context":485},{"file":631,"line":27,"context":485},{"file":635,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\decoration\\subheadline.php",{"file":635,"line":468,"context":485},{"file":638,"line":375,"context":485},"src\\Resources\\views\\public\\partials\\form\\errors.php",{"file":638,"line":276,"context":485},{"file":638,"line":222,"context":485},{"file":638,"line":260,"context":485},{"file":638,"line":264,"context":485},{"file":638,"line":256,"context":485},{"file":645,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\fields\\input-text.php",{"file":645,"line":468,"context":485},{"file":648,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\fields\\select.php",{"file":648,"line":468,"context":485},{"file":651,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\open-extra.php",{"file":653,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\open.php",{"file":655,"line":375,"context":485},"src\\Resources\\views\\public\\partials\\form\\sections\\buttons.php",{"file":655,"line":467,"context":485},{"file":655,"line":143,"context":485},{"file":655,"line":611,"context":485},{"file":655,"line":222,"context":485},{"file":655,"line":313,"context":485},{"file":662,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\sections\\fieldset.php",{"file":662,"line":375,"context":485},{"file":665,"line":375,"context":485},"src\\Resources\\views\\public\\partials\\form\\sections\\inputs.php",{"file":665,"line":27,"context":485},{"file":665,"line":335,"context":485},{"file":669,"line":468,"context":485},"src\\Resources\\views\\public\\partials\\form\\sections\\remember.php",{"file":669,"line":375,"context":485},{"file":669,"line":467,"context":485},{"file":669,"line":467,"context":485},{"file":674,"line":375,"context":485},"src\\Resources\\views\\public\\partials\\form\\sections\\selects.php",{"file":674,"line":27,"context":485},{"file":674,"line":335,"context":485},{"file":678,"line":63,"context":485},"src\\Resources\\views\\public\\partials\\form\\submit.php",{"file":678,"line":468,"context":485},{"file":681,"line":63,"context":485},"src\\Resources\\views\\public\\shortcode\\shortcode-standard.php",{"file":681,"line":468,"context":485},{"file":681,"line":375,"context":485},{"file":681,"line":27,"context":485},{"file":681,"line":272,"context":485},{"file":681,"line":288,"context":485},{"file":681,"line":241,"context":485},{"file":681,"line":241,"context":485},[],[],{"summary":692,"deductions":693},"The \"age-gate\" plugin version 3.7.2 presents a moderate security risk. While the static analysis indicates no critical or high severity taint flows and a relatively low number of dangerous functions, several concerning patterns emerge. The presence of two unprotected AJAX handlers significantly expands the attack surface, as these entry points are vulnerable to unauthorized execution. Additionally, the fact that 100% of its SQL queries are not using prepared statements is a major concern, greatly increasing the risk of SQL injection vulnerabilities, especially if any of the input is not properly sanitized.\n\nThe vulnerability history is particularly troubling. The plugin has a history of 5 known CVEs, including a critical and a high severity vulnerability. While none are currently unpatched, the historical prevalence of critical and high severity issues, coupled with common vulnerability types like missing authorization, path traversal, open redirect, and XSS, suggests a recurring pattern of security weaknesses. This indicates that past vulnerabilities may not have been fully addressed in a way that prevents future similar flaws, or that the development process consistently overlooks critical security considerations.\n\nIn conclusion, while the absence of critical taint flows and the relatively high percentage of properly escaped output are positive signs, the unprotected AJAX handlers, raw SQL queries, and the plugin's historical vulnerability record paint a picture of a plugin that requires careful attention and updates. The potential for SQL injection and unauthorized access through AJAX endpoints, combined with a past history of serious vulnerabilities, warrants a cautious approach to its use.",[694,696,698,700,702,704],{"reason":695,"points":222},"Unprotected AJAX handlers",{"reason":697,"points":222},"100% of SQL queries without prepared statements",{"reason":699,"points":123},"History of 1 critical CVE",{"reason":701,"points":330},"History of 1 high CVE",{"reason":703,"points":330},"History of 3 medium CVEs",{"reason":705,"points":222},"Common vulnerability types (Path Traversal, Open Redirect, XSS)","2026-03-16T17:20:12.912Z",{"wat":708,"direct":721},{"assetPaths":709,"generatorPatterns":713,"scriptPaths":714,"versionParams":717},[710,711,712],"\u002Fwp-content\u002Fplugins\u002Fage-gate\u002Fdist\u002Fadmin-content.js","\u002Fwp-content\u002Fplugins\u002Fage-gate\u002Fdist\u002Fedit.js","\u002Fwp-content\u002Fplugins\u002Fage-gate\u002Fdist\u002Fadmin.js",[],[715,716],"\u002Fwp-content\u002Fplugins\u002Fage-gate\u002Fvendor\u002Fautoload.php","\u002Fwp-content\u002Fplugins\u002Fage-gate\u002Fsrc\u002FBootstrap.php",[718,719,720],"age-gate\u002Fdist\u002Fadmin-content.js?ver=","age-gate\u002Fdist\u002Fedit.js?ver=","age-gate\u002Fdist\u002Fadmin.js?ver=",{"cssClasses":722,"htmlComments":723,"htmlAttributes":724,"restEndpoints":732,"jsGlobals":733,"shortcodeOutput":737},[],[],[725,726,727,728,729,730,731],"data-age-gate-content-id","data-age-gate-content-name","data-age-gate-content-type","data-age-gate-content-title","data-age-gate-content-description","data-age-gate-content-restriction","data-age-gate-content-age",[],[734,735,736],"ag_content_params","ag_admin_params","ag_settings",[]]