[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHg11UC1W4geR231E6xNr6lsevbV-jHzCMSvDIrDIGH4":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":35,"analysis":143,"fingerprints":504},"blocdash-backend-dashboard-toolkit","Blocdash – Backend Dashboard Toolkit","1.0.1","Digitaldive","https:\u002F\u002Fprofiles.wordpress.org\u002Fdigitaldive\u002F","\u003Cp>Blocdash is a modular dashboard framework for WordPress block themes. Enable only the features you need and control access by role. It includes frontend login\u002Fregister\u002Fprofile forms, an announcements feed with likes and replies, and optional Google OAuth login.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin can connect to Google services when the optional Google Login and\u002For One Tap features are enabled.\u003C\u002Fp>\n\u003Cp>Service: Google OAuth \u002F Google Identity Services (One Tap)\u003Cbr \u002F>\nWhat it is used for: Allow users to authenticate with their Google account on the front-end login flow.\u003Cbr \u002F>\nWhat data is sent and when:\u003Cbr \u002F>\n– When a user initiates Google Login or One Tap, their browser loads Google’s Identity Services script and is directed to Google for authentication.\u003Cbr \u002F>\n– The site sends the OAuth authorization code, client ID, and client secret to Google’s token endpoint to obtain an access token.\u003Cbr \u002F>\n– The access token is then sent to Google’s userinfo endpoint to retrieve the user’s profile details (such as email address, name, and Google user ID) required to sign them in or create a WordPress account.\u003C\u002Fp>\n\u003Cp>Terms of service: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003Cbr \u002F>\nPrivacy policy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>If Google Login or One Tap is enabled, the plugin sends requests to Google OAuth endpoints to authenticate users. No other external services are contacted by default.\u003C\u002Fp>\n","Blocdash provides a modular frontend dashboard with announcements, login\u002Fregister\u002Fprofile forms, and optional Google login for block themes.",0,106,"2026-02-01T16:32:00.000Z","6.9.4","5.8","7.4",[18,19,20,21,22],"announcements","block","dashboard","login","register","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblocdash-backend-dashboard-toolkit.1.0.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":32,"trust_score":33,"computed_at":34},"digitaldive",4,30,94,"2026-04-04T01:11:17.306Z",[36,60,78,91,121],{"slug":37,"name":38,"version":39,"author":40,"author_profile":41,"description":42,"short_description":43,"active_installs":44,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":23,"tags":51,"homepage":55,"download_link":56,"security_score":57,"vuln_count":58,"unpatched_count":11,"last_vuln_date":59,"fetched_at":27},"frontend-dashboard","Frontend Dashboard","2.2.10","M A Vinoth Kumar","https:\u002F\u002Fprofiles.wordpress.org\u002Fvinoth06\u002F","\u003Ch4>Frontend Dashboard Designed and Developed with WordPress Coding Standards\u003C\u002Fh4>\n\u003Cp>Frontend Dashboard is bundled with the huge list of custom features which can easily customise the User profile, Posts, Login, Register, Custom roles on the custom front page.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Custom Login Page.\u003C\u002Fli>\n\u003Cli>Custom Register Page.\u003C\u002Fli>\n\u003Cli>Custom Forgot Password.\u003C\u002Fli>\n\u003Cli>Custom Redirect URL for before and after Login, Register, Logout.\u003C\u002Fli>\n\u003Cli>Restrict WP Admin area for role based users.\u003C\u002Fli>\n\u003Cli>Add\u002FDelete custom User Roles.\u003C\u002Fli>\n\u003Cli>Customise the Frontend Dashboard with your theme matching colors.\u003C\u002Fli>\n\u003Cli>Enable\u002FDisable the Frontend Dashboard scripts and styles on both frontend and admin.\u003C\u002Fli>\n\u003Cli>Add Frontend Dashboard menus for User based roles.\u003C\u002Fli>\n\u003Cli>Add any number of custom user field.\u003C\u002Fli>\n\u003Cli>Add any number of post\u002Fcustom post field.\u003C\u002Fli>\n\u003Cli>Each custom fields can be configured based on user roles.\u003C\u002Fli>\n\u003Cli>Allow\u002FDisallow to upload files in Frontend Dashboard based on User Role.\u003C\u002Fli>\n\u003Cli>Show custom user fields on Register page.\u003C\u002Fli>\n\u003Cli>Add\u002FEdit\u002FDelete Post\u002FCustom post in Frontend Dashboard based on User Role.\u003C\u002Fli>\n\u003Cli>Show user role based custom profile page.\u003C\u002Fli>\n\u003Cli>Manage custom Post type and Taxonomies.\u003C\u002Fli>\n\u003Cli>Customize templates.\u003C\u002Fli>\n\u003Cli>Restrict illegal username on Registration.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Frontend Dashboard Plugins List\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-user-management\" rel=\"nofollow ugc\">Frontend Dashboard User Management (Pro) \u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-social-connect\" rel=\"nofollow ugc\">Frontend Dashboard Social Connect (Pro) \u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-pages\" rel=\"nofollow ugc\">Frontend Dashboard Pages\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-extra\" rel=\"nofollow ugc\">Frontend Dashboard Extra\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-captcha\" rel=\"nofollow ugc\">Frontend Dashboard Captcha\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-templates\" rel=\"nofollow ugc\">Frontend Dashboard Templates\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-social-chat\" rel=\"nofollow ugc\">Frontend Dashboard Social Chat\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-notification\" rel=\"nofollow ugc\">Frontend Dashboard Notification\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-custom-post-and-taxonomies\" rel=\"nofollow ugc\">Frontend Dashboard Custom Post and Taxonomies\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Videos\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>How to Setup Frontend Dashboard and its Add-on\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FlyoUkwndoRA?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>\u003C\u002Fp>\n\u003Cp>For more video : \u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fcategory\u002Fname\u002Ffrontend-dashboard\" rel=\"nofollow ugc\">Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-setup-payment-and-membership-pro\" rel=\"nofollow ugc\">How to setup Membership and Payment (PRO)\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-show-custom-post-field-in-frontend-post\" rel=\"nofollow ugc\">How to show custom post field in Frontend Post\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-translate-frontend-dashboard\" rel=\"nofollow ugc\">How to Translate Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-create-custom-login-for-frontend-dashboard-wordpress-plugin\" rel=\"nofollow ugc\">How to create custom login for Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-create-dashboard-for-frontend-dashboard-wordpress-plugin\" rel=\"nofollow ugc\">How to create Dashboard for Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-set-redirect-on-login-for-frontend-dashboard-wordpress-plugin\" rel=\"nofollow ugc\">How to set Redirect on Login for Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-set-widget-for-frontend-dashboard-wordpress-plugin\" rel=\"nofollow ugc\">How to set Widget for Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-create-custom-user-role-in-frontend-dashboard-wordpress-plugin\" rel=\"nofollow ugc\">How to Create Custom User Role in Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-create-a-page-for-users-based-on-their-user-role\" rel=\"nofollow ugc\">How to create a page for Users, based on their User Role\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-new-user-can-select-user-role-on-registration\" rel=\"nofollow ugc\">How new user can select user role on registration\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-customise-the-layout-colours-in-frontend-dashboard\" rel=\"nofollow ugc\">How to customise the layout colours in Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-manage-post-options-in-frontend-dashboard\" rel=\"nofollow ugc\">How to manage post options in Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fpost\u002Fhow-to-create-custom-menu-in-frontend-dashboard\" rel=\"nofollow ugc\">How to create custom menu in Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more video : \u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fcategory\u002Fname\u002Ffrontend-dashboard\" rel=\"nofollow ugc\">Frontend Dashboard\u003C\u002Fa>\u003C\u002Fp>\n","Frontend Dashboard is bundled with huge list of custom features which can easily customise the User profile, Posts, Login, Register, Custom roles.",600,144719,98,134,"2025-07-07T15:58:00.000Z","6.8.5","5.8.3",[52,53,54,20,37],"custom-login","custom-profile","custom-register","https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffrontend-dashboard.2.2.10.zip",87,8,"2025-06-05 00:00:00",{"slug":61,"name":62,"version":63,"author":40,"author_profile":41,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":25,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":23,"tags":72,"homepage":75,"download_link":76,"security_score":77,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"frontend-dashboard-captcha","Frontend Dashboard Captcha","1.4","\u003Cp>Frontend Dashboard Captcha WordPress plugin is a supportive plugin for Frontend Dashboard to protect against spam in Login and Register form.\u003C\u002Fp>\n\u003Cp>=Login=\u003C\u002Fp>\n\u003Cp>Stop Brute force attack on login page using the Captcha\u003C\u002Fp>\n\u003Cp>=Register=\u003C\u002Fp>\n\u003Cp>Stop botnet registration on register page using the Captcha\u003C\u002Fp>\n\u003Cp>=Google Captcha=\u003C\u002Fp>\n\u003Cp>Uses Google captcha through their API service.\u003C\u002Fp>\n","Frontend Dashboard Captcha WordPress plugin is a supportive plugin for Frontend Dashboard to protect against spam in Login and Register form.",90,78659,1,"2020-05-18T16:53:00.000Z","5.4.19","4.6",[20,61,73,74],"login-captcha","register-captcha","https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-captcha","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffrontend-dashboard-captcha.1.4.1.zip",85,{"slug":79,"name":80,"version":81,"author":40,"author_profile":41,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":11,"num_ratings":11,"last_updated":86,"tested_up_to":70,"requires_at_least":71,"requires_php":23,"tags":87,"homepage":89,"download_link":90,"security_score":77,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"frontend-dashboard-notification","Frontend Dashboard Notification","1.1","\u003Cblockquote>\n\u003Ch4>Notice\u003C\u002Fh4>\n\u003Cp>This is an Add-on plugin of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffrontend-dashboard\u002F\" rel=\"ugc\">Frontend Dashboard\u003C\u002Fa>, So please install \u003Ca href=\"https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard\" rel=\"nofollow ugc\">Frontend Dashboard\u003C\u002Fa> to use this plugin\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Frontend Dashboard Notification is an add-on for Frontend Dashboard WordPress plugin which allows user to show notification in Frontend Dashboard page. There are six notification slots where users can show content, image, slider, post or gutenberg blocks. The six notification slots can be restricted to users by their user role or dashboard menu or notification slot.\u003C\u002Fp>\n","Frontend Dashboard Notification is an add-on for Frontend Dashboard WordPress plugin which allows user to show notification in Frontend Dashboard page &hellip;",60,71909,"2020-05-27T03:56:00.000Z",[52,54,88,20,37],"custom-roles","https:\u002F\u002Fbuffercode.com\u002Fplugin\u002Ffrontend-dashboard-notification","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffrontend-dashboard-notification.1.1.zip",{"slug":92,"name":93,"version":94,"author":95,"author_profile":96,"description":97,"short_description":98,"active_installs":99,"downloaded":100,"rating":11,"num_ratings":11,"last_updated":101,"tested_up_to":23,"requires_at_least":102,"requires_php":23,"tags":103,"homepage":118,"download_link":119,"security_score":77,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":120},"protect-ai-login","Protect Ai Login","1.0.0","anouny","https:\u002F\u002Fprofiles.wordpress.org\u002Fanouny\u002F","\u003Cp>Protect Ai Login changes default WordPress login URL to the url you define, denied brute force attacks, spam logins, and bot or automatic register. The plugin blocks access to default login url, generates a custom branded login panel, without creating a custom page on your website.\u003C\u002Fp>\n\u003Cp>The plugin offers protection with Google reCAPTCHA v2.\u003C\u002Fp>\n\u003Ch3>Plugin Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Define new login url easily from settings page.\u003C\u002Fli>\n\u003Cli>Protect against spam login, bot registration or signup, with the integration of Google reCaptcha.\u003C\u002Fli>\n\u003Cli>Secure AXS is compatible with any permalink setup including the default.\u003C\u002Fli>\n\u003Cli>Choose to allow users with the role “Editor” to access plugin settings.\u003C\u002Fli>\n\u003Cli>Fully branded login page with colors and login logo of your choice.\u003C\u002Fli>\n\u003Cli>Plugin doesn’t create new pages on your website for displaying the new login panel.\u003C\u002Fli>\n\u003Cli>Plugin is compatible with other major security & cache plugins.\u003C\u002Fli>\n\u003Cli>Test with wordpress 4.4.2\u003C\u002Fli>\n\u003C\u002Ful>\n","Change default login site to a custom URL, block spam, bot registration, and brute-force using Google reCAPTCHA.",10,1394,"2016-04-14T06:46:00.000Z","4.0",[104,105,106,19,107,108,109,110,21,111,112,113,22,114,115,116,117],"access","attack","axs","brute","brute-force-attack","captcha","force","no-captcha","nocaptcha","recaptcha","secure","security","sign","spam","https:\u002F\u002Fwordpress.org\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprotect-ai-login.zip","2026-03-15T14:54:45.397Z",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":129,"downloaded":130,"rating":131,"num_ratings":84,"last_updated":132,"tested_up_to":14,"requires_at_least":102,"requires_php":133,"tags":134,"homepage":138,"download_link":139,"security_score":140,"vuln_count":141,"unpatched_count":11,"last_vuln_date":142,"fetched_at":27},"login-lockdown","Login Lockdown & Protection","2.15","WebFactory","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebfactory\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fwploginlockdown.com\u002F\" rel=\"nofollow ugc\">Login Lockdown\u003C\u002Fa> records the IP address and timestamp of failed login attempts. If more than a selected number of attempts are detected within a set period of time from the same IP, then the \u003Cstrong>login is disabled for all requests from that IP address\u003C\u002Fstrong> (or the IP is completely blocked from accessing the site). This secures the site and helps prevent brute force password attacks & discovery.\u003C\u002Fp>\n\u003Cp>The plugin defaults to a 1 hour lock out of an IP block after 3 failed login attempts within 5 minutes. This can be modified in options. Administrators can release locked out IPs manually from the panel. A detailed log is available for all failed login attempts and all IP locks to control lockdown.\u003C\u002Fp>\n\u003Cp>Configure the plugin from Settings – Login Lockdown.\u003C\u002Fp>\n\u003Ch4>Country blocking (PRO feature)\u003C\u002Fh4>\n\u003Cp>Block unwanted countries from accessing the site, or block them from being able to log in. Display a custom message to blocked visitors so they know why they can’t access the site.\u003C\u002Fp>\n\u003Ch4>Captcha\u003C\u002Fh4>\n\u003Cp>The simplest way to get rid of bots and brute-force password attacks. Choose from 5 different versions – built-in one, two from Google (PRO feature), Cloudflare Turnstile, and hCaptcha (PRO feature). Built-in captcha is GDPR compatible.\u003C\u002Fp>\n\u003Ch4>2FA – Two Factor Authentication (PRO feature)\u003C\u002Fh4>\n\u003Cp>Provide an extra layer of security without 2FA code generating apps such as Google Authenticator. Even if somebody knows your username & password they won’t be able to log in because it needs to be confirmed by clicking a unique link sent to your email. Since you’re the only one that has access to your inbox, you’ll never get hacked.\u003C\u002Fp>\n\u003Ch4>Cloud Protection (PRO feature)\u003C\u002Fh4>\n\u003Cp>Manage IP Whitelists and Blacklists in your Login Lockdown Dashboard (a SaaS service for managing all your sites) and apply them to protect all the sites you manage from a single location.\u003C\u002Fp>\n\u003Ch4>Temporary Access (PRO feature)\u003C\u002Fh4>\n\u003Cp>Give temporary access to other people without giving them a username & password. Set the lifetime of the link and the maximum number of times it can be used to prevent abuse. Access level rights can be any you pick – admin, editor, author…\u003C\u002Fp>\n","Protect, lockdown & secure login form by limiting login attempts from the same IP & banning IPs.",100000,1942877,86,"2025-12-03T19:35:00.000Z","5.2",[135,109,136,21,137],"block-login","firewall","protect-login","https:\u002F\u002Fwploginlockdown.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flogin-lockdown.2.15.zip",92,5,"2025-12-12 15:27:33",{"attackSurface":144,"codeSignals":320,"taintFlows":375,"riskAssessment":496,"analyzedAt":503},{"hooks":145,"ajaxHandlers":234,"restRoutes":297,"shortcodes":298,"cronEvents":317,"entryPointCount":261,"unprotectedCount":11},[146,151,156,160,164,168,171,175,179,183,188,192,196,200,203,207,209,212,215,220,223,226,228,231],{"type":147,"name":148,"callback":149,"file":150,"line":99},"action","admin_enqueue_scripts","blocdash_admin_enqueue_scripts","includes\\admin\\assets.php",{"type":147,"name":152,"callback":153,"file":154,"line":155},"admin_menu","blocdash_add_unified_admin_menu","includes\\admin\\menu.php",14,{"type":147,"name":157,"callback":158,"file":159,"line":155},"init","blocdash_register_cpt_announcements","includes\\core\\cpt-announcements.php",{"type":147,"name":157,"callback":161,"file":162,"line":163},"blocdash_maybe_migrate_legacy_data","includes\\core\\lifecycle.php",121,{"type":147,"name":165,"callback":166,"file":162,"line":167},"admin_init","blocdash_ensure_password_reset_page",188,{"type":147,"name":157,"callback":169,"file":170,"line":155},"blocdash_register_notification_hooks","includes\\core\\notifications.php",{"type":147,"name":172,"callback":173,"priority":99,"file":170,"line":174},"transition_post_status","blocdash_flag_users_on_new_post",20,{"type":147,"name":176,"callback":177,"file":170,"line":178},"blocdash_bulk_flag_users","blocdash_bulk_flag_users_handler",21,{"type":147,"name":180,"callback":181,"priority":99,"file":170,"line":182},"wp_login","blocdash_set_notification_flag_on_login",22,{"type":147,"name":184,"callback":185,"file":186,"line":187},"widgets_init","blocdash_register_sidebars","includes\\core\\tabs.php",44,{"type":147,"name":157,"callback":189,"file":190,"line":191},"blocdash_register_announcements_hooks","includes\\public\\announcements.php",15,{"type":147,"name":193,"callback":194,"file":190,"line":195},"blocdash_tab_content_announcements","blocdash_announcements_tab_content",25,{"type":147,"name":197,"callback":198,"priority":99,"file":190,"line":199},"publish_blocdash_announce","blocdash_run_on_publish_announcement",26,{"type":147,"name":157,"callback":201,"file":202,"line":155},"blocdash_register_public_asset_hooks","includes\\public\\assets.php",{"type":147,"name":204,"callback":205,"file":202,"line":206},"wp_enqueue_scripts","blocdash_enqueue_dashboard_assets",17,{"type":147,"name":204,"callback":208,"file":202,"line":178},"blocdash_enqueue_forms_assets",{"type":147,"name":157,"callback":210,"file":211,"line":155},"blocdash_register_blocks","includes\\public\\blocks.php",{"type":147,"name":157,"callback":213,"file":214,"line":191},"blocdash_register_forms_hooks","includes\\public\\forms.php",{"type":216,"name":217,"callback":218,"priority":99,"file":214,"line":219},"filter","get_avatar","blocdash_filter_get_avatar",35,{"type":147,"name":180,"callback":221,"priority":99,"file":214,"line":222},"blocdash_track_last_login",38,{"type":147,"name":157,"callback":224,"file":225,"line":191},"blocdash_register_google_login_hooks","includes\\public\\google-login.php",{"type":147,"name":204,"callback":227,"file":225,"line":182},"blocdash_enqueue_one_tap_scripts",{"type":147,"name":229,"callback":230,"file":225,"line":195},"login_message","blocdash_show_google_login_error_messages",{"type":147,"name":157,"callback":232,"file":233,"line":155},"blocdash_register_dashboard_shortcodes","includes\\public\\shortcodes.php",[235,241,245,248,251,254,258,262,265,268,272,276,280,281,283,287,291,294],{"action":236,"nopriv":237,"callback":238,"hasNonce":239,"hasCapCheck":237,"file":190,"line":240},"blocdash_like_announcement",false,"blocdash_like_announcement_ajax_handler",true,18,{"action":242,"nopriv":237,"callback":243,"hasNonce":239,"hasCapCheck":237,"file":190,"line":244},"blocdash_add_reply","blocdash_add_reply_ajax_handler",19,{"action":246,"nopriv":237,"callback":247,"hasNonce":239,"hasCapCheck":237,"file":190,"line":174},"blocdash_load_more_replies","blocdash_load_more_replies_ajax_handler",{"action":249,"nopriv":237,"callback":250,"hasNonce":239,"hasCapCheck":237,"file":190,"line":178},"blocdash_mark_replies_seen","blocdash_mark_replies_seen_ajax_handler",{"action":252,"nopriv":237,"callback":253,"hasNonce":239,"hasCapCheck":239,"file":190,"line":182},"blocdash_delete_reply","blocdash_delete_reply_ajax_handler",{"action":255,"nopriv":237,"callback":256,"hasNonce":239,"hasCapCheck":237,"file":190,"line":257},"blocdash_get_all_likers","blocdash_get_all_likers_handler",23,{"action":259,"nopriv":237,"callback":260,"hasNonce":239,"hasCapCheck":237,"file":190,"line":261},"blocdash_load_more_announcements","blocdash_load_more_announcements_handler",24,{"action":263,"nopriv":237,"callback":264,"hasNonce":239,"hasCapCheck":237,"file":190,"line":32},"blocdash_get_new_posts","blocdash_get_new_posts_handler",{"action":266,"nopriv":239,"callback":267,"hasNonce":239,"hasCapCheck":237,"file":214,"line":199},"blocdash_register_user","blocdash_handle_registration",{"action":269,"nopriv":239,"callback":270,"hasNonce":239,"hasCapCheck":237,"file":214,"line":271},"blocdash_login_user","blocdash_handle_login",27,{"action":273,"nopriv":239,"callback":274,"hasNonce":239,"hasCapCheck":237,"file":214,"line":275},"blocdash_request_password_reset","blocdash_handle_password_reset_request",28,{"action":277,"nopriv":239,"callback":278,"hasNonce":239,"hasCapCheck":237,"file":214,"line":279},"blocdash_reset_password","blocdash_handle_password_reset",29,{"action":273,"nopriv":237,"callback":274,"hasNonce":239,"hasCapCheck":237,"file":214,"line":32},{"action":277,"nopriv":237,"callback":278,"hasNonce":239,"hasCapCheck":237,"file":214,"line":282},31,{"action":284,"nopriv":237,"callback":285,"hasNonce":239,"hasCapCheck":239,"file":214,"line":286},"blocdash_update_profile","blocdash_handle_profile_update",32,{"action":288,"nopriv":237,"callback":289,"hasNonce":239,"hasCapCheck":239,"file":214,"line":290},"blocdash_delete_account","blocdash_handle_account_delete",33,{"action":292,"nopriv":239,"callback":293,"hasNonce":239,"hasCapCheck":237,"file":225,"line":257},"blocdash_google_callback","blocdash_ajax_button_callback_handler",{"action":295,"nopriv":239,"callback":296,"hasNonce":239,"hasCapCheck":237,"file":225,"line":261},"blocdash_google_onetap_callback","blocdash_ajax_onetap_callback_handler",[],[299,302,305,308,311,314],{"tag":300,"callback":301,"file":214,"line":178},"blocdash_register","blocdash_register_shortcode",{"tag":303,"callback":304,"file":214,"line":182},"blocdash_login","blocdash_login_shortcode",{"tag":306,"callback":307,"file":214,"line":257},"blocdash_password_reset","blocdash_password_reset_shortcode",{"tag":309,"callback":310,"file":214,"line":261},"blocdash_profile_editor","blocdash_profile_editor_shortcode",{"tag":312,"callback":313,"file":225,"line":178},"blocdash_google_login","blocdash_google_login_shortcode_handler",{"tag":315,"callback":316,"file":233,"line":174},"blocdash","blocdash_dashboard_shortcode",[318],{"hook":176,"callback":176,"file":170,"line":319},39,{"dangerousFunctions":321,"sqlUsage":322,"outputEscaping":325,"fileOperations":11,"externalRequests":372,"nonceChecks":240,"capabilityChecks":373,"bundledLibraries":374},[],{"prepared":323,"raw":11,"locations":324},7,[],{"escaped":326,"rawEcho":178,"locations":327},231,[328,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370],{"file":329,"line":330,"context":331},"includes\\admin\\hub.php",223,"raw output",{"file":329,"line":333,"context":331},252,{"file":190,"line":335,"context":331},447,{"file":190,"line":337,"context":331},529,{"file":190,"line":339,"context":331},565,{"file":190,"line":341,"context":331},580,{"file":190,"line":343,"context":331},591,{"file":190,"line":345,"context":331},605,{"file":190,"line":347,"context":331},621,{"file":190,"line":349,"context":331},646,{"file":190,"line":351,"context":331},650,{"file":190,"line":353,"context":331},668,{"file":190,"line":355,"context":331},673,{"file":190,"line":357,"context":331},679,{"file":190,"line":359,"context":331},680,{"file":214,"line":361,"context":331},138,{"file":214,"line":363,"context":331},351,{"file":214,"line":365,"context":331},921,{"file":233,"line":367,"context":331},52,{"file":233,"line":369,"context":331},67,{"file":233,"line":371,"context":331},89,3,11,[],[376,403,414,427,438,456,467,476,488],{"entryPoint":377,"graph":378,"unsanitizedCount":11,"severity":402},"blocdash_render_admin_hub (includes\\admin\\hub.php:10)",{"nodes":379,"edges":399},[380,385,391,394],{"id":381,"type":382,"label":383,"file":329,"line":384},"n0","source","$_POST",41,{"id":386,"type":387,"label":388,"file":329,"line":389,"wp_function":390},"n1","sink","update_option() [Settings Manipulation]",167,"update_option",{"id":392,"type":382,"label":393,"file":329,"line":244},"n2","$_GET",{"id":395,"type":387,"label":396,"file":329,"line":397,"wp_function":398},"n3","echo() [XSS]",196,"echo",[400,401],{"from":381,"to":386,"sanitized":239},{"from":392,"to":395,"sanitized":239},"low",{"entryPoint":404,"graph":405,"unsanitizedCount":11,"severity":402},"\u003Chub> (includes\\admin\\hub.php:0)",{"nodes":406,"edges":411},[407,408,409,410],{"id":381,"type":382,"label":383,"file":329,"line":384},{"id":386,"type":387,"label":388,"file":329,"line":389,"wp_function":390},{"id":392,"type":382,"label":393,"file":329,"line":244},{"id":395,"type":387,"label":396,"file":329,"line":397,"wp_function":398},[412,413],{"from":381,"to":386,"sanitized":239},{"from":392,"to":395,"sanitized":239},{"entryPoint":415,"graph":416,"unsanitizedCount":68,"severity":402},"blocdash_add_reply_ajax_handler (includes\\public\\announcements.php:197)",{"nodes":417,"edges":424},[418,419,422],{"id":381,"type":382,"label":383,"file":190,"line":333},{"id":386,"type":420,"label":421,"file":190,"line":333},"transform","→ blocdash_render_reply_html()",{"id":392,"type":387,"label":396,"file":190,"line":423,"wp_function":398},536,[425,426],{"from":381,"to":386,"sanitized":237},{"from":386,"to":392,"sanitized":237},{"entryPoint":428,"graph":429,"unsanitizedCount":68,"severity":402},"blocdash_load_more_replies_ajax_handler (includes\\public\\announcements.php:257)",{"nodes":430,"edges":435},[431,433,434],{"id":381,"type":382,"label":383,"file":190,"line":432},289,{"id":386,"type":420,"label":421,"file":190,"line":432},{"id":392,"type":387,"label":396,"file":190,"line":423,"wp_function":398},[436,437],{"from":381,"to":386,"sanitized":237},{"from":386,"to":392,"sanitized":237},{"entryPoint":439,"graph":440,"unsanitizedCount":31,"severity":402},"\u003Cannouncements> (includes\\public\\announcements.php:0)",{"nodes":441,"edges":452},[442,445,447,449,450],{"id":381,"type":382,"label":443,"file":190,"line":444},"$_POST (x15)",349,{"id":386,"type":387,"label":396,"file":190,"line":446,"wp_function":398},526,{"id":392,"type":382,"label":448,"file":190,"line":333},"$_POST (x4)",{"id":395,"type":420,"label":421,"file":190,"line":333},{"id":451,"type":387,"label":396,"file":190,"line":423,"wp_function":398},"n4",[453,454,455],{"from":381,"to":386,"sanitized":239},{"from":392,"to":395,"sanitized":237},{"from":395,"to":451,"sanitized":237},{"entryPoint":457,"graph":458,"unsanitizedCount":11,"severity":402},"blocdash_password_reset_shortcode (includes\\public\\forms.php:202)",{"nodes":459,"edges":465},[460,463],{"id":381,"type":382,"label":461,"file":214,"line":462},"$_GET (x2)",211,{"id":386,"type":387,"label":396,"file":214,"line":464,"wp_function":398},250,[466],{"from":381,"to":386,"sanitized":239},{"entryPoint":468,"graph":469,"unsanitizedCount":11,"severity":402},"\u003Cforms> (includes\\public\\forms.php:0)",{"nodes":470,"edges":474},[471,473],{"id":381,"type":382,"label":472,"file":214,"line":462},"$_GET (x3)",{"id":386,"type":387,"label":396,"file":214,"line":464,"wp_function":398},[475],{"from":381,"to":386,"sanitized":239},{"entryPoint":477,"graph":478,"unsanitizedCount":11,"severity":402},"blocdash_ajax_onetap_callback_handler (includes\\public\\google-login.php:217)",{"nodes":479,"edges":486},[480,482],{"id":381,"type":382,"label":383,"file":225,"line":481},226,{"id":386,"type":387,"label":483,"file":225,"line":484,"wp_function":485},"wp_remote_get() [SSRF]",241,"wp_remote_get",[487],{"from":381,"to":386,"sanitized":239},{"entryPoint":489,"graph":490,"unsanitizedCount":11,"severity":402},"\u003Cgoogle-login> (includes\\public\\google-login.php:0)",{"nodes":491,"edges":494},[492,493],{"id":381,"type":382,"label":383,"file":225,"line":481},{"id":386,"type":387,"label":483,"file":225,"line":484,"wp_function":485},[495],{"from":381,"to":386,"sanitized":239},{"summary":497,"deductions":498},"The \"blocdash-backend-dashboard-toolkit\" v1.0.1 plugin exhibits a generally good security posture based on the provided static analysis. A significant strength is the complete absence of critical or high-severity vulnerabilities in its history, suggesting a history of responsible development and patching. Furthermore, the static analysis reveals excellent practices like 100% of SQL queries using prepared statements and a high percentage (92%) of properly escaped output, minimizing risks of SQL injection and cross-site scripting (XSS) respectively.  The presence of nonce checks on all AJAX handlers and capability checks on relevant entry points also indicates an awareness of common WordPress attack vectors.\n\nHowever, there are a few areas that warrant attention. While the total number of entry points is relatively low, the presence of 3 unsanitized paths in the taint analysis is a potential concern. Although none of these flows were classified as critical or high severity, unsanitized paths can sometimes lead to unexpected behavior or can be chained with other minor issues to form a more significant vulnerability. Additionally, while not flagged as a vulnerability in this analysis, the plugin makes 3 external HTTP requests, which could become a risk if the external services are compromised or if the requests themselves are not handled securely, such as by not properly validating responses.\n\nIn conclusion, this plugin appears to be developed with security in mind, leveraging many best practices. The vulnerability history is a very strong indicator of this. The main areas for improvement would be to investigate and sanitize the identified unsanitized paths in the taint analysis and to ensure robust security measures are in place for all external HTTP requests. Overall, the risk is currently assessed as low, but these minor areas could be addressed to further strengthen its security.",[499,501],{"reason":500,"points":58},"Flows with unsanitized paths detected",{"reason":502,"points":372},"External HTTP requests made by the plugin","2026-03-17T07:16:56.170Z",{"wat":505,"direct":522},{"assetPaths":506,"generatorPatterns":513,"scriptPaths":514,"versionParams":515},[507,508,509,510,511,512],"\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fadmin-styles.css","\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fadmin-scripts.js","\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fdashboard-styles.css","\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fdashboard-scripts.js","\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fforms-styles.css","\u002Fwp-content\u002Fplugins\u002Fblocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fforms-scripts.js",[],[508,510,512],[516,517,518,519,520,521],"blocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fadmin-styles.css?ver=","blocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fadmin-scripts.js?ver=","blocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fdashboard-styles.css?ver=","blocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fdashboard-scripts.js?ver=","blocdash-backend-dashboard-toolkit\u002Fassets\u002Fcss\u002Fforms-styles.css?ver=","blocdash-backend-dashboard-toolkit\u002Fassets\u002Fjs\u002Fforms-scripts.js?ver=",{"cssClasses":523,"htmlComments":525,"htmlAttributes":526,"restEndpoints":527,"jsGlobals":530,"shortcodeOutput":533},[524],"blocdash-loader",[],[],[528,529],"\u002Fwp-json\u002Fblocdash\u002Fv1\u002Fsettings","\u002Fwp-json\u002Fblocdash\u002Fv1\u002Fupdate-settings",[531,532],"blocdash_ajax","blocdash_forms_ajax",[]]