[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fi_WdzvbZStrRqfVh5K0s8q2Awo1WiB5-3cF9bnDzNeM":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":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":140,"fingerprints":312},"post-snapshots","Post Snapshots","0.9","Blackbam","https:\u002F\u002Fprofiles.wordpress.org\u002Fblackbam\u002F","\u003Cp>Create, manage and view snapshots of any post (or custom post type) whenever you want. Like user-managed revisions with a lot of useful functionality.\u003C\u002Fp>\n\u003Cp>Features:\u003Cbr \u002F>\n* Create snapshots of any post type including all metadata at any point manually as a secure history and backup of your posts\u003Cbr \u002F>\n* Uses the standard WordPress posts table (like revisions)\u003Cbr \u002F>\n* Uses a custom post status (and therefore works for any post type)\u003Cbr \u002F>\n* Easy snapshot management meta box\u003Cbr \u002F>\n* Create Snapshots comfortably in the publish post box\u003Cbr \u002F>\n* Choose which post types you want to enable the snapshots feature for\u003C\u002Fp>\n\u003Cp>PHP Developer API:\u003Cbr \u002F>\n    pos_create_snapshot_from($post_id): Creates a new snapshot for a given post ID\u003Cbr \u002F>\n    pos_delete_snapshot($snap_id): Delete a snapshot by its ID\u003Cbr \u002F>\n    pos_get_latest_snapshot($post_id): Returns the ID of the latest snapshot for a given post ID\u003Cbr \u002F>\n    pos_get_plainview_url($snap_id): Get the URL to the plain snapshot view\u003C\u002Fp>\n\u003Cp>This Plugin is sponsored by ready2order GmbH, the company which is producing Austria’s best point-of-sale system. Visit us at https:\u002F\u002Fwww.ready2order.com\u002F.\u003C\u002Fp>\n\u003Cp>NOTE: The use of a custom post status in WordPress is still in beta. The developers of this plugin are in no possible case responsible for any data loss.\u003Cbr \u002F>\nIf you want to be sure nothing happens, backup your database on a regular basis. You should do it anyway.\u003C\u002Fp>\n","Create, manage and view snapshots of any post (or custom post type) whenever you want. Like user-managed revisions with a lot of useful functionality.",0,1562,100,1,"2018-08-14T17:22:00.000Z","4.9.29","4.8","7.0",[20,21,22,23],"history","post-status","revision","snapshot","https:\u002F\u002Fready2order.com\u002Fen\u002Fcontact\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-snapshots.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"blackbam",3,200,3450,69,"2026-04-05T02:03:00.222Z",[38,61,81,100,119],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":13,"downloaded":46,"rating":13,"num_ratings":14,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":57,"download_link":58,"security_score":59,"vuln_count":14,"unpatched_count":11,"last_vuln_date":60,"fetched_at":28},"stock-snapshot-for-woocommerce","Stock History & Reports Manager for WooCommerce","2.2.3","WPFactory","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpcodefactory\u002F","\u003Cp>\u003Cstrong>Stock History & Reports Manager for WooCommerce\u003C\u002Fstrong> plugin lets you keep track of your products stock in WooCommerce.\u003C\u002Fp>\n\u003Ch3>✅ Main Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Automatically take your products \u003Cstrong>stock snapshots\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Customize snapshots \u003Cstrong>time interval\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>View and export \u003Cstrong>product’s stock history\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>View \u003Cstrong>all stock snapshots history\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Use \u003Cstrong>shortcode\u003C\u002Fstrong> to display \u003Cstrong>recently restocked products\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Optionally set up \u003Cstrong>system cron\u003C\u002Fstrong> for the snapshots.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🏆 Premium Version\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwpfactory.com\u002Fitem\u002Fstock-snapshot-for-woocommerce\u002F\" rel=\"nofollow ugc\">Stock History & Reports Manager for WooCommerce Pro\u003C\u002Fa> plugin version allows you to get stock snapshot \u003Cstrong>emails\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>🗘 Feedback\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>We are open to your suggestions and feedback.\u003C\u002Fli>\n\u003Cli>Thank you for using or trying out one of our plugins!\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwpfactory.com\u002Fitem\u002Fstock-snapshot-for-woocommerce\u002F\" rel=\"nofollow ugc\">Visit plugin site\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>ℹ More\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>The plugin is \u003Cstrong>“High-Performance Order Storage (HPOS)”\u003C\u002Fstrong> compatible.\u003C\u002Fli>\n\u003C\u002Ful>\n","Keep track of your products stock in WooCommerce.",4430,"2025-10-10T20:29:00.000Z","6.8.5","5.0","",[52,53,54,55,56],"product-stock","stock","stock-history","stock-snapshot","woocommerce","https:\u002F\u002Fwpfactory.com\u002Fitem\u002Fstock-snapshot-for-woocommerce\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstock-snapshot-for-woocommerce.2.2.3.zip",99,"2025-10-10 20:52:10",{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":69,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":50,"tags":75,"homepage":79,"download_link":80,"security_score":26,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"better-revisions","Better Revisions","0.5","slehner","https:\u002F\u002Fprofiles.wordpress.org\u002Fslehner\u002F","\u003Cp>Revisions are a main part of every content management system.\u003C\u002Fp>\n\u003Cp>Normal wordpress revisions only containing the title, content and excerpt. And WordPress by itself will only add a new revision, when one (or more) of these three fields were changed. This means, if someone only changes the permalink for example, then WordPress doesn’t add any revision. And if someone changes the content and maybe the author, then WordPress adds a revision, but only with the old content – the author change will be lost.\u003C\u002Fp>\n\u003Cp>For small blogs this will be ok, but what’s about multi-author websites or blogs?\u003C\u002Fp>\n\u003Cp>I wrote this small plugin for you – for a better revision management in multi-author blogs and sites, for better monitoring the changes of every site, post or custom-post-type and finally for better restoring older revisions.\u003C\u002Fp>\n\u003Cp>So, this plugin adds following fields to the revision system:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The Author\u003C\u002Fli>\n\u003Cli>Post Date\u003C\u002Fli>\n\u003Cli>Permalink\u003C\u002Fli>\n\u003Cli>Post Status\u003C\u002Fli>\n\u003Cli>Post Password\u003C\u002Fli>\n\u003Cli>Comment Status\u003C\u002Fli>\n\u003Cli>Ping Status\u003C\u002Fli>\n\u003Cli>Post\u002FPage Parent\u003C\u002Fli>\n\u003Cli>Menu Order\u003C\u002Fli>\n\u003Cli>more to come\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This Plugin also adds a new revision, if only one of the fields above were changed. And it works with automated post\u002Fpage saves (to the server) too. But I have disabled the client side autosave – becaus on multi-author blogs\u002Fsites these function makes no sense and confuses authors more than it helps. But the autosave to the server works perfectly well with all of the fields above added.\u003C\u002Fp>\n\u003Cp>If you want to restore a revision, the fields above will restored too. And in case of deleting a post\u002Fpage, than all revision with all fields above will be deleted too – for a smaller and cleaner database.\u003C\u002Fp>\n\u003Cp>No further configuration is needed, the plugin doesn’t add any database tables rather saves additional revision data to post-meta and works with custom-post-types too. It’s translation ready and allready translated into german.\u003C\u002Fp>\n\u003Ch4>Gutenberg support was added\u003C\u002Fh4>\n\u003Cp>Now it works with the new Block-Editoe (Gutenberg) and the old Classic-Editor (tinyMCE).\u003C\u002Fp>\n","Extend your Revisions: Add important fields like \"Permalink\" or \"Status\" to the revisions for a better Content Management.",90,8746,2,"2023-04-13T21:18:00.000Z","6.2.0","4.4",[20,76,77,22,78],"page-revision","post-revision","revisions","https:\u002F\u002Fwww.silvius.at\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-revisions.0.5.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":69,"downloaded":89,"rating":13,"num_ratings":32,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":98,"download_link":99,"security_score":13,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"time-based-revisions","Time-based Revision Cleanup","1.1.4","Michael Sablone","https:\u002F\u002Fprofiles.wordpress.org\u002Fmichaelsablone\u002F","\u003Cp>Optimize your website’s performance and streamline your editing workflow with the Time-based Revision Cleanup plugin for WordPress. Our plugin offers a sophisticated solution to the limitations of the default number-based revision system, which can quickly become inadequate for active sites. Instead of restricting revisions to a set count, our plugin allows you to specify a timeframe for keeping revisions, such as 30, 60, or 365 days, ensuring that your database retains only what’s necessary without losing the essential edit history of your posts.\u003C\u002Fp>\n\u003Cp>In addition, our plugin enhances the admin dashboard with an analytics feature to generate visual representations of revision history data.\u003C\u002Fp>\n\u003Ch3>Key Features:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Intelligent Age-Based Management\u003C\u002Fstrong>: Preserve your site’s history by automatically deleting revisions past a certain age, keeping only the recent and relevant changes.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Seamless On-Save Cleanup\u003C\u002Fstrong>: The plugin intuitively removes outdated revisions upon saving posts, based on the age criteria you’ve set, without disrupting the creative process.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optional Automated Cleanup\u003C\u002Fstrong>: Enable the optional CRON job to perform regular, site-wide revision cleanups at intervals you control, maintaining optimal database health with no manual effort.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dashboard Analytics\u003C\u002Fstrong>: Visualize your site’s revision cleanup activity with an integrated chart, powered by Google’s Chart API.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fully Customizable\u003C\u002Fstrong>: Configure the plugin’s settings to fit the unique demands of your site, including save timeout, CRON frequency, and the maximum number of revisions to process.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>By focusing on time rather than revision count, our plugin addresses the core flaw in the default system, ensuring that a busy day of editing won’t result in the loss of important historical data. With the optional CRON job for hands-free maintenance, adjustable settings for precision control, and insightful analytics, the Time-based Revision Cleanup plugin is an essential tool for maintaining a healthy, efficient WordPress site.\u003C\u002Fp>\n","Maximize WordPress efficiency with Time-based Revision Cleanup: manage post histories by age, not count, with optional auto-cleanups.",1776,"2026-02-15T22:51:00.000Z","6.9.4","4.9","7.4",[95,20,96,97,78],"cleanup","optimize","performance","https:\u002F\u002Fcompiledrogue.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftime-based-revisions.1.1.4.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":11,"num_ratings":11,"last_updated":110,"tested_up_to":111,"requires_at_least":112,"requires_php":50,"tags":113,"homepage":50,"download_link":118,"security_score":26,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"menus-history","Menus History","1.0.2","binarystash01","https:\u002F\u002Fprofiles.wordpress.org\u002Fbinarystash01\u002F","\u003Cp>The Menus History plugin provides history of changes to WordPress menus items. The history information may be useful in restoring deleted or misplaced menu items.\u003C\u002Fp>\n\u003Cp>To maximize the benefit of this plugin, install it on new WordPress set ups. The information it provides can be extremely useful particularly when database back-ups are not available. Once activated, it keeps track of the following.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Item arrangement\u003C\u002Fli>\n\u003Cli>Navigation labels\u003C\u002Fli>\n\u003Cli>Title attributes\u003C\u002Fli>\n\u003Cli>CSS classes\u003C\u002Fli>\n\u003Cli>Description\u003C\u002Fli>\n\u003Cli>URL\u003C\u002Fli>\n\u003Cli>Item targets\u003C\u002Fli>\n\u003Cli>Link relationships\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please note the plugin’s limitations.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The plugin must be activated prior to making changes to your menus. Changes done before the plugin had been activated would not be shown. \u003C\u002Fli>\n\u003Cli>The plugin doesn’t provide the ability to restore menus; it only shows history information. You still need to manually restore your menus.\u003C\u002Fli>\n\u003Cli>Deleted menus are also removed from the plugin’s menu list.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Credits:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Hourglass icon made by \u003Ca href=\"http:\u002F\u002Fwww.freepik.com\" rel=\"nofollow ugc\">Freepik\u003C\u002Fa> from \u003Ca href=\"http:\u002F\u002Fwww.flaticon.com\" rel=\"nofollow ugc\">www.flaticon.com\u003C\u002Fa> is licensed under \u003Ca href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F3.0\u002F\" rel=\"nofollow ugc\">CC BY 3.0\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>List icon made by \u003Ca href=\"http:\u002F\u002Fwww.antonps.com\" rel=\"nofollow ugc\">Anton Saputro\u003C\u002Fa> from \u003Ca href=\"http:\u002F\u002Fwww.flaticon.com\" rel=\"nofollow ugc\">www.flaticon.com\u003C\u002Fa> is licensed under \u003Ca href=\"http:\u002F\u002Fcreativecommons.org\u002Flicenses\u002Fby\u002F3.0\u002F\" rel=\"nofollow ugc\">CC BY 3.0\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Provides history of changes to Wordpress menus",70,2782,"2015-05-24T07:23:00.000Z","4.2.39","3.5",[114,115,116,117,101],"menu-history","menu-revision","menu-revisions","menus","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmenus-history.1.0.2.zip",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":127,"downloaded":128,"rating":129,"num_ratings":14,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":133,"tags":134,"homepage":138,"download_link":139,"security_score":26,"vuln_count":11,"unpatched_count":11,"last_vuln_date":27,"fetched_at":28},"widget-revisions","Widget Revisions","1.0.3","NetTantra","https:\u002F\u002Fprofiles.wordpress.org\u002Fnettantra\u002F","\u003Cp>Widget Revisions is your new widget log keeper in WordPress. It keeps the record of every single parameter change you’ve ever made for any widget. It also enables you to rollback your widget to any of those previous settings with a just single click.\u003C\u002Fp>\n\u003Cp>Now with Widget Revisions maintain log of the changes you make to your widget settings without any hassle. This go-to plugin shows you a handy list that keeps the history of the parameter changes made to any of your widgets ever. Not only that, with just one click, you can switch to any previous settings of your choice.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Constant Track on the changes made to each widget ever on the Real-Time basis\u003C\u002Fli>\n\u003Cli>A systematic handy list cum log keeper for a clear understanding\u003C\u002Fli>\n\u003Cli>Instant Rollback to the previous setting with a single click\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>About the Developer\u003C\u002Fh4>\n\u003Cp>This Plugin is developed by NetTantra Technologies – a team of open-source enthusiasts and WordPress experts. NetTantra designers and developers work relentlessly to bring code to life so that WordPress users don’t have to do the hard work.\u003C\u002Fp>\n\u003Cp>For professional support, you can get in touch with the NetTantra Team at \u003Ca href=\"mailto:wordpress@nettantra.com\" rel=\"nofollow ugc\">wordpress@nettantra.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Plugin Support\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"wordpress@nettantra.com\" title=\"WordPress Plugins and Support Services\" rel=\"nofollow ugc\">Widget Revisions\u003C\u002Fa>\u003C\u002Fp>\n","This plugin allows to create revisions for Widget like post and page revisions. It also enables you to rollback your widget to any of those previous s &hellip;",50,2028,60,"2019-07-19T08:31:00.000Z","5.2.24","4.5","5.2",[78,135,136,137,120],"sidebar-revisions","widget-history","widget-log","https:\u002F\u002Fwww.nettantra.com\u002Fwordpress\u002F?utm_src=widget-revisions","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwidget-revisions.1.0.3.zip",{"attackSurface":141,"codeSignals":214,"taintFlows":255,"riskAssessment":301,"analyzedAt":311},{"hooks":142,"ajaxHandlers":210,"restRoutes":211,"shortcodes":212,"cronEvents":213,"entryPointCount":11,"unprotectedCount":11},[143,148,153,158,162,166,168,172,177,181,186,188,192,195,199,203,206],{"type":144,"name":145,"callback":146,"file":147,"line":32},"action","add_meta_boxes","pos_add_snapshot_list_box","admin\\post-meta-box.php",{"type":144,"name":149,"callback":150,"priority":151,"file":147,"line":152},"save_post","pos_update_snapshot_properties",10,133,{"type":144,"name":154,"callback":155,"file":156,"line":157},"admin_menu","pos_settings","admin\\settings.php",5,{"type":144,"name":159,"callback":160,"file":156,"line":161},"admin_init","pos_update_settings",57,{"type":144,"name":163,"callback":164,"file":156,"line":165},"admin_notices","closure",75,{"type":144,"name":163,"callback":164,"file":156,"line":167},81,{"type":144,"name":169,"callback":170,"file":171,"line":32},"pre_post_update","pos_may_create_snapshot","duplicate.php",{"type":144,"name":173,"callback":174,"file":175,"line":176},"admin_action_pos_duplicate_post_as_snapshot","pos_duplicate_post_as_snapshot","legacy\\duplicate-in-overview.php",122,{"type":144,"name":178,"callback":179,"file":175,"line":180},"init","pos_create_snapshot_filters",141,{"type":144,"name":182,"callback":183,"file":184,"line":185},"pre_get_posts","pos_register_post_status","post-snapshots.php",55,{"type":144,"name":178,"callback":187,"file":184,"line":108},"pos_register_post_status_admin",{"type":144,"name":189,"callback":190,"file":184,"line":191},"admin_enqueue_scripts","pos_admin_scripts",79,{"type":144,"name":159,"callback":193,"file":184,"line":194},"pos_restrict_editing_snapshots",95,{"type":144,"name":196,"callback":197,"file":184,"line":198},"post_submitbox_misc_actions","pos_add_snapshots_to_publish_box",111,{"type":144,"name":200,"callback":201,"file":184,"line":202},"delete_post","pos_delete_snapshots",130,{"type":144,"name":204,"callback":205,"file":184,"line":180},"wp_head","pos_no_index_snapshots",{"type":144,"name":207,"callback":208,"file":184,"line":209},"template_redirect","pos_check_view_plain",210,[],[],[],[],{"dangerousFunctions":215,"sqlUsage":216,"outputEscaping":227,"fileOperations":11,"externalRequests":11,"nonceChecks":14,"capabilityChecks":32,"bundledLibraries":254},[],{"prepared":71,"raw":32,"locations":217},[218,221,223],{"file":171,"line":219,"context":220},65,"$wpdb->get_results() with variable interpolation",{"file":175,"line":222,"context":220},68,{"file":224,"line":225,"context":226},"uninstall.php",9,"$wpdb->query() with variable interpolation",{"escaped":228,"rawEcho":229,"locations":230},11,12,[231,234,236,237,239,241,242,244,246,248,250,252],{"file":147,"line":232,"context":233},51,"raw output",{"file":147,"line":235,"context":233},54,{"file":147,"line":161,"context":233},{"file":147,"line":238,"context":233},58,{"file":147,"line":240,"context":233},62,{"file":147,"line":165,"context":233},{"file":156,"line":243,"context":233},43,{"file":156,"line":245,"context":233},76,{"file":156,"line":247,"context":233},82,{"file":184,"line":249,"context":233},153,{"file":184,"line":251,"context":233},195,{"file":184,"line":253,"context":233},203,[],[256,273,281,293],{"entryPoint":257,"graph":258,"unsanitizedCount":11,"severity":272},"pos_update_settings (admin\\settings.php:59)",{"nodes":259,"edges":269},[260,264],{"id":261,"type":262,"label":263,"file":156,"line":108},"n0","source","$_POST['pos_post_types']",{"id":265,"type":266,"label":267,"file":156,"line":108,"wp_function":268},"n1","sink","update_option() [Settings Manipulation]","update_option",[270],{"from":261,"to":265,"sanitized":271},true,"low",{"entryPoint":274,"graph":275,"unsanitizedCount":11,"severity":272},"\u003Csettings> (admin\\settings.php:0)",{"nodes":276,"edges":279},[277,278],{"id":261,"type":262,"label":263,"file":156,"line":108},{"id":265,"type":266,"label":267,"file":156,"line":108,"wp_function":268},[280],{"from":261,"to":265,"sanitized":271},{"entryPoint":282,"graph":283,"unsanitizedCount":11,"severity":272},"pos_check_view_plain (post-snapshots.php:144)",{"nodes":284,"edges":291},[285,288],{"id":261,"type":262,"label":286,"file":184,"line":287},"$_GET (x3)",147,{"id":265,"type":266,"label":289,"file":184,"line":249,"wp_function":290},"echo() [XSS]","echo",[292],{"from":261,"to":265,"sanitized":271},{"entryPoint":294,"graph":295,"unsanitizedCount":11,"severity":272},"\u003Cpost-snapshots> (post-snapshots.php:0)",{"nodes":296,"edges":299},[297,298],{"id":261,"type":262,"label":286,"file":184,"line":287},{"id":265,"type":266,"label":289,"file":184,"line":249,"wp_function":290},[300],{"from":261,"to":265,"sanitized":271},{"summary":302,"deductions":303},"The \"post-snapshots\" plugin v0.9 exhibits a generally strong security posture based on the provided static analysis.  A significant strength is the absence of any identified critical or high-severity taint flows, suggesting that user-supplied data is not being processed in a way that immediately leads to common vulnerabilities like code injection or path traversal. The limited number of SQL queries and the decent percentage utilizing prepared statements further indicate careful data handling.  The presence of nonce and capability checks, though limited in number, are positive signs of basic security measures being implemented.\n\nHowever, there are areas for improvement.  The output escaping is only properly handled in approximately half of the cases, which could lead to cross-site scripting (XSS) vulnerabilities if unsanitized output is rendered in the browser.  The plugin also has a non-zero percentage of SQL queries that are not prepared, posing a risk of SQL injection if those queries handle user-supplied input without proper sanitization. The vulnerability history is currently clean, which is excellent, but this is a single version and doesn't guarantee future safety. The overall impression is a plugin with good intentions but lacking robust sanitization practices in all areas, leaving some room for potential exploitation.",[304,306,309],{"reason":305,"points":151},"SQL queries not using prepared statements",{"reason":307,"points":308},"Less than 100% of output properly escaped",6,{"reason":310,"points":32},"Limited number of nonce\u002Fcapability checks","2026-03-17T07:05:50.828Z",{"wat":313,"direct":320},{"assetPaths":314,"generatorPatterns":316,"scriptPaths":317,"versionParams":318},[315],"\u002Fwp-content\u002Fplugins\u002Fpost-snapshots\u002Fadmin\u002Fadmin.css",[],[],[319],"post-snapshots\u002Fadmin\u002Fadmin.css?ver=1.0.0",{"cssClasses":321,"htmlComments":325,"htmlAttributes":326,"restEndpoints":328,"jsGlobals":329,"shortcodeOutput":331},[322,323,324],"pos_post_meta_box","pos_post_meta_box_available","pos_post_meta_box_list",[],[327],"name=\"pos_snapshot_create_new\"",[],[330],"window.print()",[]]