[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fQ1yCakxBsaDLosU0DV6dUv1jb4TTsvB6L-T-gD9YlQE":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":18,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":39,"analysis":136,"fingerprints":173},"dg-real-media-library","Document Gallery for Real Media Library","1.0.0","Matthias Günter","https:\u002F\u002Fprofiles.wordpress.org\u002Fmguenter\u002F","\u003Cp>Insert a gallery of documents in a post or page from a folder in your media library created with \u003Ca href=\"https:\u002F\u002Fdevowl.io\u002Fwordpress-real-media-library\u002F\" rel=\"nofollow ugc\">WordPress Real Media Library\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cp>This plugin is an add-on that allows you to use the following plugins together, which must be installed:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdocument-gallery\u002F\" rel=\"ugc\">Document Gallery\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdevowl.io\u002Fgo\u002Fcodecanyon\u002Freal-media-library?source=document-gallery-for-real-media-library-wordpress-org\" rel=\"nofollow ugc\">Real Media Library\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to use it\u003C\u002Fh3>\n\u003Cp>Watch the following video for a brief general introduction to \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdocument-gallery\u002F\" rel=\"ugc\">Document Gallery\u003C\u002Fa>:\u003C\u002Fp>\n\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\u002FXb7RVzfeUUg?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>Just install this plugin and you can use the following short code. The \u003Ccode>rml_folder\u003C\u002Fcode> attribute is the ID of the folder created with Real Media Library.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[dg id=-1 rml_folder=28]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>How do you get the folder ID?\u003C\u002Fstrong> Go to “Media” in your WordPress backend and select the folder you want to know the ID of. The URL in the address bar of your browser ends with “\u002Fwp-admin\u002Fupload.php?rml_folder=4”. In this example the folder ID is 4.\u003C\u002Fp>\n\u003Cp>\u003Cem>This plugin is a free micro add-on for Real Media Library with limited support.\u003C\u002Fem>\u003C\u002Fp>\n","Create a gallery of documents from a folder in your media library created with Real Media Library.",100,6023,60,2,"2020-03-27T08:30:00.000Z","5.4.19","4.0","",[20,21,22,23,24],"document","document-gallery","files","media","real-media-library","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdg-real-media-library.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"mguenter",5,4300,88,30,86,"2026-04-04T07:18:42.058Z",[40,60,77,96,119],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":11,"num_ratings":14,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":18,"download_link":59,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"aam-protected-media-files","AAM Protected Media Files","1.3.2","AAM Plugin","https:\u002F\u002Fprofiles.wordpress.org\u002Fvasyltech\u002F","\u003Cp>Prevent direct access to the unlimited number of media library items either for visitors, individual users or groups of users (roles). This plugin does not modify a physical file’s location or URL.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>The AAM Protected Media Files plugins is the official add-on to the free Advanced Access Manager (aka AAM). While this plugin actually manages physical access to the media files, AAM provides the UI interface to define access to files.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch4>Few Facts\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>It requires a simple manual steps in order to configure a webserver to protect direct access to \u003Ccode>\u002Fwp-content\u002Fuploads\u003C\u002Fcode> folder. For more information, please check \u003Ca href=\"https:\u002F\u002Faamportal.com\u002Farticle\u002Fprotected-media-files-installation\" rel=\"nofollow ugc\">our installation instructions\u003C\u002Fa>;\u003C\u002Fli>\n\u003Cli>It does not change a physical file’s location, content or URL. Upon deactivation, everything goes back to normal;\u003C\u002Fli>\n\u003Cli>It protects all the allowed by WordPress core file types and those that are extended with third-party plugins (e.g. \u003Ccode>.svg\u003C\u002Fcode>, \u003Ccode>.sketch\u003C\u002Fcode>, etc.). For the list of all allowed extensions, check official WP documentation for the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Ffunctions\u002Fwp_get_ext_types\u002F\" rel=\"nofollow ugc\">wp_get_ext_types()\u003C\u002Fa> core function;\u003C\u002Fli>\n\u003Cli>It allows you to manage access to any media file for visitors, any individual user, roles or even define the default access to all media files for everybody (this one is available with \u003Ca href=\"https:\u002F\u002Faamportal.com\u002Fpremium\" rel=\"nofollow ugc\">premium\u003C\u002Fa> add-on for AAM plugin);\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For more information about how properly install and use it, refer to \u003Ca href=\"https:\u002F\u002Faamportal.com\u002Fsupport\" rel=\"nofollow ugc\">our documentation\u003C\u002Fa>.\u003C\u002Fp>\n","Add-on to the free Advanced Access Manager plugin that protects media files from direct access for visitors, roles or users",600,16488,"2025-06-05T11:29:00.000Z","6.8.0","4.7.0","5.6.0",[55,22,56,57,58],"documents","media-library","protected-media","protected-videos","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Faam-protected-media-files.1.3.2.zip",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":27,"downloaded":68,"rating":27,"num_ratings":27,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":18,"tags":72,"homepage":18,"download_link":76,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"acf-my-media-cluster","ACF My Media Cluster","1.2.12","Nikki Blight","https:\u002F\u002Fprofiles.wordpress.org\u002Fkionae\u002F","\u003Cp>ACF My Media Cluster is an extension for Advance Custom Fields which adds the feature to create groups of media files for download on a page\u002Fpost\u002Fcustom post type. The plugin does come with both a simple to use shortcode and a helper function if you wish to customize your output.\u003Cbr \u002F>\n* Visually create your Fields in the ACF interface.\u003Cbr \u002F>\n* Assign your fields to post types\u003Cbr \u002F>\n* Easily load data through a simple and friendly helper function, or just use the shortcode.\u003Cbr \u002F>\n* Uses the native WordPress custom post type for ease of use and fast processing\u003Cbr \u002F>\n* Uses the native WordPress metadata for ease of use and fast processing\u003Cbr \u002F>\n* Add multiple media files to your posts, pages, and custom post types. You can also modify title, caption and description from this interface.\u003C\u002Fp>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>Use the helper function below to pull data from the database. The function will be return an array. The helper function takes in 3 parameters.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>acf_media_cluster(string|required $acf_field_name, int $postID, array $options);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Example\u003C\u002Fh4>\n\u003Cp>Based on the helper function above. Let say we want to pull annual reports from current page.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>acf_media_cluster('annual_reports', get_the_ID());\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The data that will be return will be an array. You can then loop over the array and use the data anyway you want.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$ap = acf_media_cluster('annual_reports', get_the_ID());\nif( !empty($ap) ){\n    foreach($ap as $item){\n        var_dump($item); \u002F\u002FUse the data as you wish\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Options\u003C\u002Fh4>\n\u003Cp>The 3rd parameter of the \u003Ccode>acf_media_cluster(string|required $acf_field_name, int $postID, array $options);\u003C\u002Fcode> helper function is options which takes in an array. You can pass the following:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>acf_media_cluster('annual_reports', get_the_ID(), array(\n    'orderby' => 'post__in',\n    'order' => 'ASC'\n));\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For acceptable values for order and orderby, please refer to \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Ffunctions\u002Fget_posts\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Ffunctions\u002Fget_posts\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>In your editor, add the following shortcode where you want the media to appear.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[acf-media-cluster field_name=\"my_media_field\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The shortcode accepts the following parameters.\u003C\u002Fp>\n\u003Cp>string|required $field_name – Which ACF field name should be used\u003Cbr \u002F>\nstring $container_id – Wrap the output with your custom CSS ID name\u003Cbr \u002F>\nstring $container_class – Wrap the output with your custom CSS class name\u003Cbr \u002F>\nstring $skin – Do you want default CSS styling to apply? yes|no\u003Cbr \u002F>\nstring $format – html format for the output. table|list\u003Cbr \u002F>\nstring $title – a title wrapped in an container tag.  Leave blank for no tag.\u003Cbr \u002F>\nstring $title_container – html tag to wrap the title in, with no brackets. “h3” is default.\u003Cbr \u002F>\nstring $show_meta – Do you want to display file metadata (size, downloads, date)? yes|no\u003C\u002Fp>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cp>This ACF field type is compatible with:\u003Cbr \u002F>\n* ACF 6\u003Cbr \u002F>\n* ACF 5\u003C\u002Fp>\n\u003Cp>This ACF field is compatible with the iThemes Security plugin, but you must uncheck the option for “Disable PHP in plugins” under PHP Execution in System Tweaks.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>This plugin is based on ACF Media Cluster by Navneil Naicker. (\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Facf-media-cluster\u002F\" rel=\"ugc\">https:\u002F\u002Fwordpress.org\u002Fplugins\u002Facf-media-cluster\u002F\u003C\u002Fa>)\u003C\u002Fp>\n\u003Cp>It also takes some inspiration from the Download Attachments plugin by dfactory, which sadly no longer exists.\u003C\u002Fp>\n","ACF My Media Cluster is an extension for the Advance Custom Fields plugin, which adds the ability to create groups of media files for download on a pa &hellip;",2151,"2026-01-07T17:10:00.000Z","6.9.4","3.6.0",[73,55,74,23,75],"acf","download-files","pdf","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Facf-my-media-cluster.1.2.12.zip",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":85,"downloaded":86,"rating":37,"num_ratings":87,"last_updated":88,"tested_up_to":70,"requires_at_least":17,"requires_php":89,"tags":90,"homepage":94,"download_link":95,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"simple-social-icons","Simple Social Icons","4.0.0","OsomPress","https:\u002F\u002Fprofiles.wordpress.org\u002Fosompress\u002F","\u003Cp>Simple Social Icons is an easy to use, customizable way to display icons that link visitors to your various social profiles. You can choose which profiles to link to, customize the color and size of your icons, and align them to the left, center, or right.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Two Ways to Use Social Icons:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Widget (WordPress 4.0+):\u003C\u002Fstrong> The traditional widget works on all supported WordPress versions. Simply drag the “Simple Social Icons” widget into any widget area and configure it from the widget form. All available icons are accessible through the widget.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Block Variations (WordPress 6.9+):\u003C\u002Fstrong> On WordPress 6.9+, this plugin extends the core Social Icons block with additional icon variations. These icons automatically appear when adding a Social Icons block in the block editor. Block variations only add icons that are not already available in WordPress core, so you get the best of both worlds: core icons plus these additional options.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Important:\u003C\u002Fstrong> If you’re currently using the widget, nothing changes for you. The widget continues to work exactly as before on all WordPress versions. Block variations are an additional feature that only activates on WordPress 6.9+ and doesn’t affect existing widget functionality.\u003C\u002Fp>\n\u003Cp>*Note: The simple_social_default_glyphs filter has been deprecated from this plugin.\u003C\u002Fp>\n","This plugin provides two ways to display social icons: a traditional widget (available on all WordPress versions) and block variations for the core So &hellip;",100000,3241683,91,"2025-12-16T12:19:00.000Z","7.4",[91,92,93],"social-media","social-networking","social-profiles","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-social-icons\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-social-icons.4.0.0.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":70,"requires_at_least":109,"requires_php":89,"tags":110,"homepage":114,"download_link":115,"security_score":116,"vuln_count":117,"unpatched_count":27,"last_vuln_date":118,"fetched_at":29},"media-cleaner","Media Cleaner: Clean your WordPress!","7.0.5","Jordy Meow","https:\u002F\u002Fprofiles.wordpress.org\u002Ftigroumeow\u002F","\u003Cp>Media Cleaner is a powerful plugin that helps you clean up your WordPress media library by deleting unused media entries and files, as well as fixing broken entries. With an internal trash feature, you can preview and confirm changes before permanently deleting anything. Plus, Media Cleaner uses smart analysis to ensure compatibility with specific plugins and themes.\u003C\u002Fp>\n\u003Cp>Use it alongside \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdatabase-cleaner\u002F\" rel=\"ugc\">Database Cleaner\u003C\u002Fa> for the ultimate clean-up experience.\u003C\u002Fp>\n\u003Cp>Media Cleaner is like a ninja assassin for your Media Library – it’ll stealthily take out all the unnecessary media and broken entries that are cluttering up the place. Just make sure you have a \u003Cstrong>solid backup plan\u003C\u002Fstrong> in place before you let this bad boy loose.\u003C\u002Fp>\n\u003Cp>To learn more about compatibility, features, and the Pro version, check out the \u003Ca href=\"https:\u002F\u002Fmeowapps.com\u002Fmedia-cleaner\u002Ftutorial\u002F\" rel=\"nofollow ugc\">tutorial\u003C\u002Fa> on the \u003Ca href=\"https:\u002F\u002Fmeowapps.com\u002Fmedia-cleaner\u002F\" rel=\"nofollow ugc\">official website\u003C\u002Fa>.\u003C\u002Fp>\n\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\u002FqmDSgWZWnSw?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\u003Ch3>COMPATIBILITY\u003C\u002Fh3>\n\u003Cp>This plugin is compatible with all media types, including retina and WebP versions. It has been tested on a wide range of WordPress versions, including the latest version with Gutenberg, as well as on various themes with a large community of users. It also supports WooCommerce. For users with more complex plugins for handling website content, the Pro version may be necessary for optimal compatibility. We are constantly working to increase compatibility with other plugins.\u003C\u002Fp>\n\u003Ch3>PRO VERSION\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fmeowapps.com\u002Fmedia-cleaner\u002F\" rel=\"nofollow ugc\">Media Cleaner Pro\u003C\u002Fa> adds extra features to the free version of Media Cleaner:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Filesystem Analysis: Scans your physical \u002Fuploads directory and matches it against the Media Library.\u003C\u002Fli>\n\u003Cli>Extra support for complex plugins, such as ACF, Metabox, Divi Builder, Fusion Builder (Avada), WPBakery Page Builder, Visual Composer, Elementor, Beaver Builder, Brizy Builder, Oxygen Builder, Slider Revolution, Justified Image Grid, Avia Framework, and many more!\u003C\u002Fli>\n\u003Cli>Live Site Scan: Analyzes the online version of your website, potentially improving accuracy in some cases.\u003C\u002Fli>\n\u003Cli>WP-CLI support: Allows you to run the plugin at a higher speed or automatically with direct server access (via SSH).\u003C\u002Fli>\n\u003C\u002Ful>\n","Clean your WordPress! Eliminate unused and broken media files. For a faster, and better website.",90000,4405648,92,741,"2026-03-09T22:57:00.000Z","6.0",[111,22,112,113,23],"clean","images","library","https:\u002F\u002Fmeowapps.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmedia-cleaner.7.0.5.zip",99,1,"2024-04-29 00:00:00",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":106,"num_ratings":129,"last_updated":130,"tested_up_to":70,"requires_at_least":131,"requires_php":18,"tags":132,"homepage":18,"download_link":135,"security_score":11,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"clean-image-filenames","Clean Image Filenames","1.5","Upperdog","https:\u002F\u002Fprofiles.wordpress.org\u002Fupperdog\u002F","\u003Cp>This plugin automatically converts language accent characters in filenames when uploading to the media library. Characters are converted into browser and server friendly, non-accent characters.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Converts accent characters to non-accent, latin equivalents in Swedish, Danish, German, and more.\u003C\u002Fli>\n\u003Cli>Removes special characters like exclamation marks, periods, hashtags, and more.\u003C\u002Fli>\n\u003Cli>Lets you choose if you want to convert only image files, or all file types.\u003C\u002Fli>\n\u003Cli>Makes site and server migrations easier thanks to non-accent character filenames.\u003C\u002Fli>\n\u003Cli>Provides filter hook for developers who want to specify which file types to convert.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Räksmörgås.jpg \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> raksmorgas.jpg\u003C\u002Fli>\n\u003Cli>Æblegrød_FTW!.gif \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> aeblegrod-ftw.gif\u003C\u002Fli>\n\u003Cli>Château de Ferrières.png \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> chateau-de-ferrieres.png\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Worth noting\u003C\u002Fh3>\n\u003Cp>The plugin only converts filenames when the files are being uploaded. It can not convert existing files.\u003C\u002Fp>\n\u003Ch3>Filter for developers\u003C\u002Fh3>\n\u003Cp>This filter provides developers a way to specify which file types the plugin should convert. This filter overrides the plugin settings on the media settings page. For a complete list of mime types, see \u003Ca href=\"http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInternet_media_type\" rel=\"nofollow ugc\">Wikipedia\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The following example will convert PDF, JPEG and PNG files only:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function my_clean_image_filenames_mime_types() {\n    $mime_types = array(\n        'application\u002Fpdf',\n        'image\u002Fjpeg',\n        'image\u002Fpng',\n    );\n    return $mime_types;\n}\nadd_filter( 'clean_image_filenames_mime_types', 'my_clean_image_filenames_mime_types' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n","This plugin automatically converts language accent characters to non-accent characters in filenames when uploading to the media library.",30000,335219,21,"2026-01-14T09:45:00.000Z","2.9",[22,112,23,133,134],"sanitize","upload","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fclean-image-filenames.1.5.zip",{"attackSurface":137,"codeSignals":157,"taintFlows":164,"riskAssessment":165,"analyzedAt":172},{"hooks":138,"ajaxHandlers":153,"restRoutes":154,"shortcodes":155,"cronEvents":156,"entryPointCount":27,"unprotectedCount":27},[139,144,147,150],{"type":140,"name":141,"callback":141,"file":142,"line":143},"action","init","index.php",24,{"type":140,"name":145,"callback":145,"priority":146,"file":142,"line":36},"admin_notices",10,{"type":140,"name":145,"callback":148,"priority":146,"file":142,"line":149},"admin_notices_dg",34,{"type":140,"name":151,"callback":151,"priority":146,"file":142,"line":152},"dg_query",38,[],[],[],[],{"dangerousFunctions":158,"sqlUsage":159,"outputEscaping":161,"fileOperations":27,"externalRequests":27,"nonceChecks":27,"capabilityChecks":27,"bundledLibraries":163},[],{"prepared":27,"raw":27,"locations":160},[],{"escaped":27,"rawEcho":27,"locations":162},[],[],[],{"summary":166,"deductions":167},"The 'dg-real-media-library' plugin version 1.0.0 exhibits a strong security posture based on the provided static analysis.  The absence of dangerous functions, SQL injection vulnerabilities, unsanitized output, file operations, external HTTP requests, and the complete reliance on prepared statements for SQL queries are all positive indicators.  Furthermore, the lack of any recorded vulnerabilities in its history, including critical or high severity issues, suggests a commitment to secure development or simply a lack of prior exploitation attempts.  The plugin also demonstrates good practice by not bundling external libraries, which can often be a source of vulnerabilities if not kept up-to-date.\n\nHowever, the analysis reveals a complete absence of any detected entry points such as AJAX handlers, REST API routes, shortcodes, or cron events. While this indicates a minimal attack surface, it also means there are no capability checks or nonce checks being enforced across any potential interactions. This is a significant gap. The static analysis also reported zero taint flows and zero analyzed flows, which, while positive in that no vulnerabilities were found, also suggests limited complexity in the plugin's functionality or the analysis's scope.  The plugin's strengths lie in its clean code and lack of historical vulnerabilities, but the absence of any authentication or authorization checks on the (currently non-existent) entry points is a critical weakness if functionality is ever added that interacts with the WordPress environment.",[168,170],{"reason":169,"points":146},"No nonce checks on any entry points",{"reason":171,"points":146},"No capability checks on any entry points","2026-03-16T20:34:32.345Z",{"wat":174,"direct":179},{"assetPaths":175,"generatorPatterns":176,"scriptPaths":177,"versionParams":178},[],[],[],[],{"cssClasses":180,"htmlComments":183,"htmlAttributes":184,"restEndpoints":185,"jsGlobals":186,"shortcodeOutput":187},[181,182],"notice-error","is-dismissible",[],[],[],[],[]]