[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fpmw6_TN9gLmSmug423OZiARxr3ppXPEr6w9WjYV6JzY":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":22,"download_link":23,"security_score":13,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26,"vulnerabilities":27,"developer":28,"crawl_stats":25,"alternatives":33,"analysis":129,"fingerprints":235},"mirror-gravatar","Mirror Gravatar","1.5","jwz","https:\u002F\u002Fprofiles.wordpress.org\u002Fjwz\u002F","\u003Cp>Locally mirrors commenters’ Gravatar, Libravatar and Mastodon avatars and serves them from your site, rather than loading them from a third-party web site upon each page load.\u003C\u002Fp>\n\u003Cp>This has several effects:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>If most of the comments on a post have no avatar, those turn into \u003Cem>one\u003C\u002Fem> load of a shared image, instead of one for each comment, that happens to return the same “mystery” image.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You will be serving more (small) images.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>If a commenter’s URL looks like a link to a Mastodon \u002F ActivityPub profile, their Mastodon account’s avatar will be displayed.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>When commenting, a live preview of the avatar tracks the contents of the “Email” field.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.gravatar.com\u002F\" rel=\"nofollow ugc\">gravatar.com\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.libravatar.org\u002F\" rel=\"nofollow ugc\">libravatar.org\u003C\u002Fa> no longer have a web-bug on your blog that is loaded by each viewer.  Instead of being loaded at every page view, the avatar is loaded just once, on the server-side, at the time each new comment is posted.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>If someone changes or deletes their avatar, your site continues displaying the image that was their avatar at the time that they last posted.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Likewise, the user’s Gravatar or Mastodon profile is saved along with their comment, viewable by admins even if they later change or delete it.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Security and Privacy\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.libravatar.org\u002F\" rel=\"nofollow ugc\">Libravatar\u003C\u002Fa> is open source. Gravatar is \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGravatar\" rel=\"nofollow ugc\">owned by WordPress\u003C\u002Fa>, and their \u003Ca href=\"https:\u002F\u002Fautomattic.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">privacy policy\u003C\u002Fa> says that they don’t monetize that info.  But hey, corporate policies change, subpoenas exist, and domain names get sold.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Should you trust Gravatar with user data? Well, in 2024, Gravatar announced that they are \u003Ca href=\"https:\u002F\u002Fjwz.org\u002Fb\u002FykXF\" rel=\"nofollow ugc\">pivoting to blockchain\u003C\u002Fa>, whatever that means, so that’s fairly disqualifying. See also \u003Ca href=\"https:\u002F\u002Fjwz.org\u002Fb\u002FykPk\" rel=\"nofollow ugc\">WordPress “growth hacking”\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fjwz.org\u002Fb\u002FykNg\" rel=\"nofollow ugc\">WordPress sells users’ data to train AI tools\u003C\u002Fa>.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>There used to be a potential issue due to \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGravatar#Security_concerns_and_data_breaches\" rel=\"nofollow ugc\">Gravatars using MD5 hashes\u003C\u002Fa>, but these days they use SHA256, so I assume that’s no longer a problem.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Locally mirror commenters' Gravatar or Mastodon profile images.",20,1723,100,1,"2025-07-31T00:10:00.000Z","6.8.5","2.7","",[20,21],"comments","gravatar","https:\u002F\u002Fwww.jwz.org\u002Fmirror-gravatar\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmirror-gravatar.1.5.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":13,"avg_patch_time_days":30,"trust_score":31,"computed_at":32},2,30,94,"2026-04-04T10:38:05.459Z",[34,54,72,94,111],{"slug":35,"name":36,"version":37,"author":38,"author_profile":39,"description":40,"short_description":41,"active_installs":42,"downloaded":43,"rating":13,"num_ratings":14,"last_updated":44,"tested_up_to":45,"requires_at_least":46,"requires_php":18,"tags":47,"homepage":51,"download_link":52,"security_score":53,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"easygravatars","Easy Gravatars","1.3","Dougal Campbell","https:\u002F\u002Fprofiles.wordpress.org\u002Fdougal\u002F","\u003Cp>This plugin allows you to automatically add Gravatars for commenters to your\u003Cbr \u002F>\ntheme, if your theme does not already support them.\u003C\u002Fp>\n\u003Cp>According to the Gravatar.com website, Gravatars are Globally Recognized\u003Cbr \u002F>\nAvatars, or an “avatar image that follows you from weblog to weblog\u003Cbr \u002F>\nappearing beside your name when you comment on gravatar enabled sites.”\u003Cbr \u002F>\nYou register with the Gravatar server, and upload an image which you will\u003Cbr \u002F>\nuse as your avatar. The gravatar image is keyed to your email address, so\u003Cbr \u002F>\nthat it is unique to you.\u003C\u002Fp>\n\u003Cp>This plugin will display gravatars for the people who comment on your posts.\u003Cbr \u002F>\nYou do not need to modify any of your template files — just activate the\u003Cbr \u002F>\nplugin, and it will add gravatars to your comments template automatically.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Based on a code snippet from Matt Mullenweg:\u003Cbr \u002F>\n  http:\u002F\u002Fphotomatt.net\u002F2007\u002F10\u002F20\u002Fgravatar-enabled\u002F\u003Cbr \u002F>\n  http:\u002F\u002Fpastebin.ca\u002F743979\u003C\u002Fp>\n\u003Cp>Props to David Potter for pointing out that Gravatar normalizes email\u003Cbr \u002F>\naddresses to lowercase before hashing with MD5:\u003Cbr \u002F>\n  http:\u002F\u002Fdpotter.net\u002FTechnical\u002Findex.php\u002F2007\u002F10\u002F22\u002Fintegrating-gravatar-support\u002F\u003C\u002Fp>\n","Add Gravatars to your comments without modifying any template files. Just activate, and you're done!",200,64590,"2010-01-14T15:36:00.000Z","3.0.5","2.0.4",[48,49,20,21,50],"avatar","avatars","gravatars","http:\u002F\u002Fdougal.gunters.org\u002Fplugins\u002Feasy-gravatars","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasygravatars.1.3.zip",85,{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":42,"downloaded":62,"rating":13,"num_ratings":29,"last_updated":63,"tested_up_to":64,"requires_at_least":65,"requires_php":18,"tags":66,"homepage":70,"download_link":71,"security_score":13,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"top-commentators-widget","Top Commentators Widget","1.7","Lorna Timbah","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebgrrrl\u002F","\u003Cp>This plugin creates a widget to show the top commentators in your WP site. Always go back to the Widget settings after each version update to Save your settings. Demo can be found at http:\u002F\u002Fdemo.webgrrrl.net\u003C\u002Fp>\n\u003Cp>The Top Commentators Widget plugin is adapted from Show Top Commentators plugin at Personal Financial Advice, this widget is easier to manage via the control form (no need to edit the PHP file); additional options are also available to make it more flexible. Read the FAQ section on how to customize the widget. Read the Changelog as well as http:\u002F\u002Fwebgrrrl.net\u002Ftags\u002Ftcw for the latest news on this widget.\u003C\u002Fp>\n\u003Cp>This widget is extensively tested with the following settings: Google Chrome 13.0.782.215 m, PHP 5.2.13, Apache 2.2.15 (Win32), MySQL 5.0.51a, WordPress 3.2.1. Further testing and bug report on this widget is greatly welcomed and appreciated.\u003C\u002Fp>\n","Adds a sidebar widget to show the top commentators in your WP site. Demo: http:\u002F\u002Fdemo.webgrrrl.net",156008,"2025-12-20T13:00:00.000Z","6.6.5","2.8",[20,21,67,68,69],"seo","sidebar","widget","http:\u002F\u002Fwebgrrrl.net\u002Farchives\u002Fmy-top-commentators-widget-quick-dirty.htm","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftop-commentators-widget.1.7.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":13,"downloaded":80,"rating":31,"num_ratings":81,"last_updated":82,"tested_up_to":83,"requires_at_least":84,"requires_php":18,"tags":85,"homepage":91,"download_link":92,"security_score":93,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"polygon-recent-comments-with-avatar","Polygon Recent Comments With Avatar","1.0.4","polyxgo","https:\u002F\u002Fprofiles.wordpress.org\u002Fsanddesert88\u002F","\u003Cp>Display recent comments in the sidebar with user avatar\u002FGravatar support, styles, information, and an active scrollbar for handling numerous comments.\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpolygon-recent-comments-with-avatar\u002Ffaq\u002F\" rel=\"ugc\">FAQ\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwikipoly.com\u002Fen\u002Fpoly-comments\u002F\" rel=\"nofollow ugc\">Support and request additional features as needed\u003C\u002Fa>\u003C\u002Fp>\n","Polygon Recent Comments With Avatar: Recent comments with avatar support, including Gravatar, date, username, user link, and scrollbar.",5262,6,"2024-05-24T22:52:00.000Z","6.5.8","4.1",[86,87,88,89,90],"display-recent-comments","recent-comment-with-author-gravatar","recent-comments","recent-comments-information","recent-comments-with-avatar","https:\u002F\u002Fpolyxgo.vn","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpolygon-recent-comments-with-avatar.1.0.4.zip",92,{"slug":95,"name":96,"version":97,"author":98,"author_profile":99,"description":100,"short_description":101,"active_installs":102,"downloaded":103,"rating":13,"num_ratings":29,"last_updated":104,"tested_up_to":105,"requires_at_least":106,"requires_php":18,"tags":107,"homepage":109,"download_link":110,"security_score":53,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"default-gravatar-sans","Default Gravatar Sans","1.1.2","raohmaru","https:\u002F\u002Fprofiles.wordpress.org\u002Fraohmaru\u002F","\u003Cp>Disables default Gravatar.com avatar and redirection to gravatar.com servers, and allows to define a local default avatar image for users without avatar in his profile.\u003C\u002Fp>\n\u003Ch3>1.1.2\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Bug fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>1.1.1\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Bug fixes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>1.1\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Compatible with WordPress 4.8.\u003C\u002Fli>\n\u003Cli>Support for high resolution avatar images\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>1.0\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Initial release.\u003C\u002Fli>\n\u003C\u002Ful>\n","Disables Gravatar.com avatar, and allows one local default avatar image for users without avatar in his profile.",50,4197,"2017-10-03T12:01:00.000Z","4.8.28","3.0",[48,20,21,108],"users","http:\u002F\u002Fraohmaru.com\u002Fblog\u002Fwordpress\u002Fdefault-gravatar-sans\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdefault-gravatar-sans.1.1.2.zip",{"slug":112,"name":113,"version":114,"author":115,"author_profile":116,"description":117,"short_description":118,"active_installs":119,"downloaded":120,"rating":24,"num_ratings":24,"last_updated":121,"tested_up_to":122,"requires_at_least":123,"requires_php":18,"tags":124,"homepage":127,"download_link":128,"security_score":53,"vuln_count":24,"unpatched_count":24,"last_vuln_date":25,"fetched_at":26},"avatars-for-comment-feeds","Avatars for Comment Feeds","1.0.1","Erunafailaro","https:\u002F\u002Fprofiles.wordpress.org\u002Ferunafailaro\u002F","\u003Cp>This plugin will add avatars of comment-authors to the comment-feeds of your WordPress-Blog. This is done by utilizing the native WordPress-function \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FUsing_Gravatars#Theme_Support_for_WordPress_2.5\" title=\"add_avatar docu at the Codex\" rel=\"nofollow ugc\">\u003Ccode>add_avatar()\u003C\u002Fcode>\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The plugin may add a snapshot from \u003Ca href=\"http:\u002F\u002Fwebsnapr.com\" title=\"websnapr.com\" rel=\"nofollow ugc\">websnapr.com\u003C\u002Fa> to the pingbacks and trackbacks you receive.\u003C\u002Fp>\n\u003Cp>This page and the plugin are still in development. Stay tuned for the first release, which will happen in a few days.\u003C\u002Fp>\n\u003Ch3>History\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>1.0.1 Compatibility with new wordPress 2.7-plugin-API\u003C\u002Fli>\n\u003Cli>1.0.0.0 Initial Version\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Plugin Homepage\u003C\u002Fh3>\n\u003Cp>The complete documentation is located at my \u003Ca href=\"http:\u002F\u002Fwww.weinschenker.name\u002Favatars-for-comment-feeds\u002F\" title=\"Avatars for Comment Feeds\" rel=\"nofollow ugc\">website\u003C\u002Fa>.\u003C\u002Fp>\n","This plugin will add avatars of comment-authors to the comment-feeds of your WordPress-Blog.",10,6179,"2009-02-15T19:25:00.000Z","2.7.1","2.6",[48,125,20,126,21],"comment","feed","http:\u002F\u002Fwww.weinschenker.name\u002Favatars-for-comment-feeds\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Favatars-for-comment-feeds.1.0.1.zip",{"attackSurface":130,"codeSignals":161,"taintFlows":223,"riskAssessment":224,"analyzedAt":234},{"hooks":131,"ajaxHandlers":157,"restRoutes":158,"shortcodes":159,"cronEvents":160,"entryPointCount":24,"unprotectedCount":24},[132,138,143,147,152,154,155,156],{"type":133,"name":134,"callback":135,"priority":119,"file":136,"line":137},"filter","pre_get_avatar","mirror_gravatar_pre_get_avatar","mirror-gravatar.php",353,{"type":139,"name":140,"callback":141,"priority":29,"file":136,"line":142},"action","comment_post","mirror_gravatar_comment_url_fallback",471,{"type":133,"name":144,"callback":145,"file":136,"line":146},"comment_form_fields","mirror_gravatar_wrap_comment_headers",506,{"type":139,"name":148,"callback":149,"priority":150,"file":136,"line":151},"add_meta_boxes_comment","mirror_gravatar_meta_box",11,572,{"type":133,"name":134,"callback":135,"priority":119,"file":153,"line":137},"trunk\\mirror-gravatar.php",{"type":139,"name":140,"callback":141,"priority":29,"file":153,"line":142},{"type":133,"name":144,"callback":145,"file":153,"line":146},{"type":139,"name":148,"callback":149,"priority":150,"file":153,"line":151},[],[],[],[],{"dangerousFunctions":162,"sqlUsage":163,"outputEscaping":165,"fileOperations":221,"externalRequests":81,"nonceChecks":24,"capabilityChecks":24,"bundledLibraries":222},[],{"prepared":24,"raw":24,"locations":164},[],{"escaped":166,"rawEcho":167,"locations":168},24,34,[169,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220],{"file":136,"line":170,"context":171},618,"raw output",{"file":136,"line":173,"context":171},619,{"file":136,"line":175,"context":171},621,{"file":136,"line":177,"context":171},631,{"file":136,"line":179,"context":171},633,{"file":136,"line":181,"context":171},638,{"file":136,"line":183,"context":171},644,{"file":136,"line":185,"context":171},661,{"file":136,"line":187,"context":171},662,{"file":136,"line":189,"context":171},674,{"file":136,"line":191,"context":171},675,{"file":136,"line":193,"context":171},685,{"file":136,"line":195,"context":171},699,{"file":136,"line":197,"context":171},715,{"file":136,"line":199,"context":171},716,{"file":136,"line":201,"context":171},724,{"file":136,"line":203,"context":171},730,{"file":153,"line":170,"context":171},{"file":153,"line":173,"context":171},{"file":153,"line":175,"context":171},{"file":153,"line":177,"context":171},{"file":153,"line":179,"context":171},{"file":153,"line":181,"context":171},{"file":153,"line":183,"context":171},{"file":153,"line":185,"context":171},{"file":153,"line":187,"context":171},{"file":153,"line":189,"context":171},{"file":153,"line":191,"context":171},{"file":153,"line":193,"context":171},{"file":153,"line":195,"context":171},{"file":153,"line":197,"context":171},{"file":153,"line":199,"context":171},{"file":153,"line":201,"context":171},{"file":153,"line":203,"context":171},4,[],[],{"summary":225,"deductions":226},"The \"mirror-gravatar\" plugin v1.5 presents a generally good security posture based on the provided static analysis and vulnerability history.  There are no identified CVEs, indicating a historically stable plugin. The absence of dangerous functions, the exclusive use of prepared statements for SQL queries, and a lack of recorded critical or high severity vulnerabilities are strong indicators of responsible development practices.  Furthermore, the static analysis reveals a seemingly small attack surface with no reported AJAX handlers, REST API routes, shortcodes, or cron events that lack authentication or permission checks.\n\nHowever, several areas warrant attention. The low percentage of properly escaped output (41%) is a significant concern, suggesting a high likelihood of Cross-Site Scripting (XSS) vulnerabilities. While no specific XSS vulnerabilities were identified in the static or taint analysis, the prevalence of unsanitized output represents a substantial potential risk. The complete absence of nonce checks and capability checks across all identified entry points (though zero were found) is a fundamental security oversight. If any entry points were to be introduced or discovered in the future, they would likely be unprotected. The presence of file operations and external HTTP requests, without further context on their implementation, also introduces potential risks if not handled with extreme care regarding user-supplied input or trust in external sources.\n\nIn conclusion, while the plugin has a clean vulnerability history and utilizes good practices for database interactions, the lack of robust output sanitization is its most glaring weakness. The absence of any capability or nonce checks also leaves it vulnerable if its attack surface were to expand. The strengths lie in its clean history and SQL practices, but the weaknesses in output escaping and general auth checks present a moderate risk that could be significantly amplified by even a small increase in its attack surface or a sophisticated XSS exploit.",[227,230,232],{"reason":228,"points":229},"Low percentage of properly escaped output",15,{"reason":231,"points":119},"No nonce checks found",{"reason":233,"points":119},"No capability checks found","2026-03-16T22:47:06.677Z",{"wat":236,"direct":243},{"assetPaths":237,"generatorPatterns":239,"scriptPaths":240,"versionParams":241},[238],"\u002Fwp-content\u002Fplugins\u002Fmirror-gravatar\u002Fmirror-gravatar.css",[],[],[242],"mirror-gravatar\u002Fmirror-gravatar.css?ver=",{"cssClasses":244,"htmlComments":245,"htmlAttributes":246,"restEndpoints":247,"jsGlobals":249,"shortcodeOutput":250},[],[],[],[248],"\u002Fwp-json\u002Fmirror-gravatar\u002Fv1\u002Fsettings",[],[]]