[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgz-PodZxv8sMBYgyFPEW3HTkehhEP85oi0C6QTO_yF4":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":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":40,"analysis":151,"fingerprints":303},"unique-headers","Unique Headers","1.9.3","Ryan Hellyer","https:\u002F\u002Fprofiles.wordpress.org\u002Fryanhellyer\u002F","\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fgeek.hellyer.kiwi\u002Fproducts\u002Funique-headers\u002F\" rel=\"nofollow ugc\">Unique Headers Plugin\u003C\u002Fa> adds a custom header image box to the post\u002Fpage edit screen. You can use this to upload a unique header image for that post, or use another image from your WordPress media library. When you view that page on the front-end of your site, the default header image for your site will be replaced by the unique header you selected.\u003C\u002Fp>\n\u003Cp>This functionality also works with categories and tags.\u003C\u002Fp>\n\u003Ch4>Requirements\u003C\u002Fh4>\n\u003Cp>You must use a theme which utilizes the built-in custom header functionality of WordPress. If your theme implement it’s own header functionality, then this plugin will not work with it.\u003C\u002Fp>\n\u003Ch4>Paid WordPress development\u003C\u002Fh4>\n\u003Cp>If you would like to pay for assistance, additional features to be added to the plugin or are just looking for general WordPress development services, please contact me via \u003Ca href=\"https:\u002F\u002Fryan.hellyer.kiwi\u002Fcontact\u002F\" rel=\"nofollow ugc\">my contact form\u003C\u002Fa>.\u003C\u002Fp>\n","Adds the ability to use unique custom header images on individual pages, posts or categories or tags.",20000,413649,98,160,"2023-10-26T12:27:00.000Z","6.4.8","4.3","",[20,21,22,23,24],"custom-header","header","headers","images","page","https:\u002F\u002Fgeek.hellyer.kiwi\u002Fplugins\u002Funique-headers\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funique-headers.1.9.3.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":38,"computed_at":39},"ryanhellyer",14,97230,88,30,86,"2026-04-04T00:34:45.626Z",[41,66,91,110,130],{"slug":42,"name":43,"version":44,"author":45,"author_profile":46,"description":47,"short_description":48,"active_installs":49,"downloaded":50,"rating":38,"num_ratings":51,"last_updated":52,"tested_up_to":53,"requires_at_least":54,"requires_php":55,"tags":56,"homepage":61,"download_link":62,"security_score":63,"vuln_count":64,"unpatched_count":28,"last_vuln_date":65,"fetched_at":30},"http-headers","HTTP Headers","1.19.2","Dimitar Ivanov","https:\u002F\u002Fprofiles.wordpress.org\u002Fzinoui\u002F","\u003Cp>HTTP Headers gives your control over the http headers returned by your blog or website.\u003C\u002Fp>\n\u003Cp>Headers supported by HTTP Headers includes:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Access-Control-Allow-Origin\u003C\u002Fli>\n\u003Cli>Access-Control-Allow-Credentials\u003C\u002Fli>\n\u003Cli>Access-Control-Max-Age\u003C\u002Fli>\n\u003Cli>Access-Control-Allow-Methods\u003C\u002Fli>\n\u003Cli>Access-Control-Allow-Headers\u003C\u002Fli>\n\u003Cli>Access-Control-Expose-Headers\u003C\u002Fli>\n\u003Cli>Age \u003C\u002Fli>\n\u003Cli>Content-Security-Policy\u003C\u002Fli>\n\u003Cli>Content-Security-Policy-Report-Only\u003C\u002Fli>\n\u003Cli>Cache-Control\u003C\u002Fli>\n\u003Cli>Clear-Site-Data\u003C\u002Fli>\n\u003Cli>Connection\u003C\u002Fli>\n\u003Cli>Content-Encoding\u003C\u002Fli>\n\u003Cli>Content-Type\u003C\u002Fli>\n\u003Cli>Cross-Origin-Embedder-Policy\u003C\u002Fli>\n\u003Cli>Cross-Origin-Opener-Policy\u003C\u002Fli>\n\u003Cli>Cross-Origin-Resource-Policy\u003C\u002Fli>\n\u003Cli>Expect-CT\u003C\u002Fli>\n\u003Cli>Expires\u003C\u002Fli>\n\u003Cli>Feature-Policy\u003C\u002Fli>\n\u003Cli>NEL\u003C\u002Fli>\n\u003Cli>Permissions-Policy\u003C\u002Fli>\n\u003Cli>Pragma\u003C\u002Fli>\n\u003Cli>P3P\u003C\u002Fli>\n\u003Cli>Referrer-Policy\u003C\u002Fli>\n\u003Cli>Report-To\u003C\u002Fli>\n\u003Cli>Strict-Transport-Security\u003C\u002Fli>\n\u003Cli>Timing-Allow-Origin\u003C\u002Fli>\n\u003Cli>Vary\u003C\u002Fli>\n\u003Cli>WWW-Authenticate\u003C\u002Fli>\n\u003Cli>X-Content-Type-Options\u003C\u002Fli>\n\u003Cli>X-DNS-Prefetch-Control\u003C\u002Fli>\n\u003Cli>X-Download-Options\u003C\u002Fli>\n\u003Cli>X-Frame-Options\u003C\u002Fli>\n\u003Cli>X-Permitted-Cross-Domain-Policies\u003C\u002Fli>\n\u003Cli>X-Powered-By\u003C\u002Fli>\n\u003Cli>X-Robots-Tag\u003C\u002Fli>\n\u003Cli>X-UA-Compatible\u003C\u002Fli>\n\u003Cli>X-XSS-Protection\u003C\u002Fli>\n\u003C\u002Ful>\n","HTTP Headers adds CORS & security HTTP headers to your website.",50000,715994,70,"2024-12-22T11:49:00.000Z","6.7.5","3.2","5.3",[57,58,59,42,60],"cors-headers","csp-header","custom-headers","security-headers","https:\u002F\u002Fgithub.com\u002Friverside\u002Fhttp-headers","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhttp-headers.1.19.2.zip",91,4,"2023-07-13 00:00:00",{"slug":67,"name":68,"version":69,"author":70,"author_profile":71,"description":72,"short_description":73,"active_installs":74,"downloaded":75,"rating":38,"num_ratings":76,"last_updated":77,"tested_up_to":78,"requires_at_least":79,"requires_php":80,"tags":81,"homepage":86,"download_link":87,"security_score":88,"vuln_count":89,"unpatched_count":28,"last_vuln_date":90,"fetched_at":30},"wp-header-images","WP Header Images","2.1.3","Fahad Mahmood","https:\u002F\u002Fprofiles.wordpress.org\u002Ffahadmahmood\u002F","\u003Cul>\n\u003Cli>Author: \u003Ca href=\"https:\u002F\u002Fwww.androidbubbles.com\u002Fcontact\" rel=\"nofollow ugc\">Fahad Mahmood\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Project URI: \u003Ca href=\"http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fwp-header-images\" rel=\"nofollow ugc\">http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fwp-header-images\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Demo Link: \u003Ca href=\"http:\u002F\u002Fdemo.androidbubble.com\u002Fwp-header-images\" rel=\"nofollow ugc\">http:\u002F\u002Fdemo.androidbubble.com\u002Fwp-header-images\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Demo Link:  \u003Ca href=\"http:\u002F\u002Fdemo.androidbubble.com\u002Fwp-header-images-slider\" rel=\"nofollow ugc\">http:\u002F\u002Fdemo.androidbubble.com\u002Fwp-header-images-slider\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Shortcode: [WP_HEADER_IMAGES]\u003C\u002Fp>\n\u003Cp>WP Header Images is a great plugin to implement custom header images for each page. You can set images easily and later can manage CSS from your theme.\u003Cbr \u002F>\nWP Header Images is a WordPress plugin which helps you to choose a unique image for each menu page. Normally a menu item can be either page, post, category, product or even just a link. These menu items can be managed from WordPress Admin > Appearance > Menus.\u003Cbr \u002F>\nWooCommerce categories can have unique header images by using this plugin. It was a difficult thing to manage different slideshow before, most of the times you have to be restricted for banner area for only home page. And that home banners cannot be used for all pages. By this plugin you can use unique header images for each WooCommerce category and product pages too.\u003C\u002Fp>\n\u003Ch4>Tags\u003C\u002Fh4>\n\u003Cp>page header, head image, slideshow, dynamic header, dynamic images\u003C\u002Fp>\n\u003Ch3>Video Tutorials\u003C\u002Fh3>\n\u003Ch4>How it works?\u003C\u002Fh4>\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\u002F4zJpBtWP2mw?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 List\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Guava Pattern\u003C\u002Fli>\n\u003Cli>Genesis\u003C\u002Fli>\n\u003Cli>Thesis\u003C\u002Fli>\n\u003Cli>WooThemes\u003C\u002Fli>\n\u003Cli>Gantry\u003C\u002Fli>\n\u003Cli>Carrington Core\u003C\u002Fli>\n\u003Cli>Hybrid Core\u003C\u002Fli>\n\u003Cli>Options Framework\u003C\u002Fli>\n\u003Cli>Redux Framework\u003C\u002Fli>\n\u003Cli>SMOF\u003C\u002Fli>\n\u003Cli>UPThemes\u003C\u002Fli>\n\u003Cli>Vafpress\u003C\u002Fli>\n\u003Cli>Codestar\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Arbitrary section\u003C\u002Fh3>\n\u003Cp>I would appreciate the suggestions related to new features. Please don’t forget to support this free plugin by giving your awesome reviews.\u003C\u002Fp>\n\u003Ch3>A brief Markdown Example\u003C\u002Fh3>\n\u003Cp>Ordered list:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Can be used with WooCommerce\u003C\u002Fli>\n\u003Cli>Exceptional support is available\u003C\u002Fli>\n\u003Cli>Developed according to the WordPress plugin development standards\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Unordered list:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>It can be used with menu pages\u003C\u002Fli>\n\u003Cli>It can be used with menu posts\u003C\u002Fli>\n\u003Cli>It can be used with menu links\u003C\u002Fli>\n\u003Cli>It can be used with menu categories\u003C\u002Fli>\n\u003Cli>It can be used with menu products\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This WordPress Plugin is free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version. This free software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this software. If not, see http:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html.\u003C\u002Fp>\n","A great WordPress plugin which helps you to choose a unique image for each menu page.",6000,232167,36,"2025-04-25T01:20:00.000Z","6.8.5","3.0.1","7.0",[20,82,83,84,85],"custom-images","header-images","image-slider","images-slideshow","http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fwp-header-images","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-header-images.2.1.3.zip",100,1,"2021-10-11 00:00:00",{"slug":92,"name":93,"version":94,"author":95,"author_profile":96,"description":97,"short_description":98,"active_installs":99,"downloaded":100,"rating":101,"num_ratings":102,"last_updated":103,"tested_up_to":78,"requires_at_least":104,"requires_php":105,"tags":106,"homepage":108,"download_link":109,"security_score":88,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"add-custom-header-images","Add Custom Header Images","2.3.5","Andy Fragen","https:\u002F\u002Fprofiles.wordpress.org\u002Fafragen\u002F","\u003Cp>Remove default header images and load custom header images from ‘The Headers’ page. Allows for easy selection of random header images in your theme.\u003C\u002Fp>\n\u003Cp>A plugin that should be able to remove default headers for a theme and add custom headers based upon the article written by \u003Ca href=\"http:\u002F\u002Fjuliobiason.net\u002F2011\u002F10\u002F25\u002Ftwentyeleven-with-easy-rotating-header-images\u002F\" rel=\"nofollow ugc\">Julio Biason\u003C\u002Fa> who was inspired by \u003Ca href=\"http:\u002F\u002Fwpti.ps\u002F?p=107\" rel=\"nofollow ugc\">wpti.ps\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Create a Page named \u003Cstrong>The Headers\u003C\u002Fstrong>. Then upload header images (media files) to the the page. The page may have a visibility of private. All images displayed on the page will be parsed, those attached to the page and those added via image blocks.\u003C\u002Fp>\n\u003Cp>Once the custom header images are loaded, just go to \u003Ccode>Appearance > Header\u003C\u002Fcode> or \u003Ccode>Customize > Header Image\u003C\u002Fcode> and select \u003Ccode>Randomize suggested headers\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>The plugin will display an error notice if there is \u003Cstrong>not\u003C\u002Fstrong> a page titled, \u003Cstrong>The Headers\u003C\u002Fstrong>.\u003C\u002Fp>\n","Remove default header images and load custom header images from 'The Headers' page. Allows for easy selection of random header images in your theme.",500,44760,94,3,"2025-04-03T21:24:00.000Z","5.2","5.6",[22,23,107],"rotate-headers","https:\u002F\u002Fgithub.com\u002Fafragen\u002Fadd-custom-header-images","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadd-custom-header-images.2.3.5.zip",{"slug":111,"name":112,"version":113,"author":114,"author_profile":115,"description":116,"short_description":117,"active_installs":118,"downloaded":119,"rating":28,"num_ratings":28,"last_updated":120,"tested_up_to":53,"requires_at_least":121,"requires_php":18,"tags":122,"homepage":127,"download_link":128,"security_score":129,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"dynamic-page-header-images","Dynamic Page  Header Images","1.0","praveencrony","https:\u002F\u002Fprofiles.wordpress.org\u002Fpraveencrony\u002F","\u003Cp>A very simple and lightweight Plugin for managing custom header images for pages.Use this plugin you can easy way to add\u002Fchange\u002Fmanage your page header images dynamically.\u003C\u002Fp>\n\u003Ch4>Features Included\u003C\u002Fh4>\n\u003Cp>*Login to wordpress admin\u003Cbr \u002F>\n*Go to Pages menu –> Add New\u003Cbr \u002F>\n*See Dynamic Header Image meta box.\u003Cbr \u002F>\n*Upload your header image and publish post\u003C\u002Fp>\n\u003Cp>*Show Page Header Image with img tag, copy and Paste below function to your theme header.php Theme Path: wp-content\u002Fthemes\u002Fyour-current-theme\u002Fheader.php\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if(function_exists('dhi_get_headerimage_withtag'))\n{ \n   echo dhi_get_headerimage_withtag(); \n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>*Get Page Header Image Url,copy and Paste below function to your theme header.php or where ever you want to get image url use this function.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if(function_exists('dhi_get_headerimage_url'))\n{ \n    echo dhi_get_headerimage_url(); \n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>*Get Page Header Image Using Shortcode\u003C\u002Fp>\n\u003Cp>*Login to your wordpress admin\u003Cbr \u002F>\n*Go to Pages -> All Pages\u003Cbr \u002F>\n*Click Edit link of any one page\u003Cbr \u002F>\n*Paste below shortcode\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[dhi_headerimage] --> Get image with image tag \n\n[dhi_headerimage img_tag='false'] -- > Get Image Url Only\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Once install the plugin go to settings menu ->  User Guide- DHI\u003C\u002Fli>\n\u003Cli>Follow the mentioned Steps\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Problems and Support\u003C\u002Fh4>\n\u003Cp>To get fastest response use the support page in the plugin area on WordPress.org\u003C\u002Fp>\n\u003Ch4>Please Review!\u003C\u002Fh4>\n\u003Cp>I would love some feedback. I will try and respond to any issues you might have.\u003C\u002Fp>\n\u003Ch4>Comments, Feedback and Request Features\u003C\u002Fh4>\n\u003Cp>To send any suggestions, comments, or feedback about this plugin send a [mail to us]\u003Cbr \u002F>\n(plugin@phpboys.in).\u003C\u002Fp>\n","A very simple and lightweight Plugin for managing custom header images for pages.Dynamically Add & Change Your page Header Images.",50,4578,"2024-12-31T07:05:00.000Z","3.0",[123,124,125,126,111],"add-header-image-for-pages","change-header-image-dynamically","change-page-header-images","dynamic-header-images","http:\u002F\u002Fphpboys.in","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdynamic-page-header-images.3.0.zip",92,{"slug":131,"name":132,"version":133,"author":134,"author_profile":135,"description":136,"short_description":137,"active_installs":138,"downloaded":139,"rating":28,"num_ratings":28,"last_updated":140,"tested_up_to":141,"requires_at_least":142,"requires_php":18,"tags":143,"homepage":149,"download_link":150,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-super-secure-and-fast-htaccess","WP Super Secure and Fast htaccess","1.0.0","Andrea Pernici","https:\u002F\u002Fprofiles.wordpress.org\u002Fandreapernici\u002F","\u003Cp>This essential .htaccess rules plugin allow you to improve security and speed of your wordpress blog.\u003C\u002Fp>\n\u003Cp>More info:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>More info on \u003Ca href=\"http:\u002F\u002Fwww.andreapernici.com\u002Fwordpress\u002Fwp-super-secure-and-fast-htaccess\u002F\" rel=\"nofollow ugc\">WP Super Secure and Fast htaccess\u003C\u002Fa>, with info on how to configure it.\u003C\u002Fli>\n\u003Cli>Check out the other \u003Ca href=\"http:\u002F\u002Fwww.andreapernici.com\u002Fwordpress\u002F\" rel=\"nofollow ugc\">WordPress plugins\u003C\u002Fa> by the same author, and read his blog: \u003Ca href=\"http:\u002F\u002Fwww.andreapernici.com\" rel=\"nofollow ugc\">Andrea\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Special Thanks to \u003Ca href=\"http:\u002F\u002Fwww.salserocafe.com\u002F\" rel=\"nofollow ugc\">Salserocafe Article Marketing\u003C\u002Fa> for support.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Changelog\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>1.0.0\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>first release\u003C\u002Fli>\n\u003C\u002Ful>\n","This essential .htaccess rules plugin allow you to improve security and speed of your wordpress blog.",40,5789,"2010-02-11T09:09:00.000Z","2.9.2","2.6",[144,145,146,147,148],"htaccess","page-caching","page-expire-headers","web-performance-optimization","wordpress-security","http:\u002F\u002Fwww.andreapernici.com\u002Fwordpress\u002Fwp-super-secure-and-fast-htaccess\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-super-secure-and-fast-htaccess.1.0.0.zip",{"attackSurface":152,"codeSignals":228,"taintFlows":239,"riskAssessment":296,"analyzedAt":302},{"hooks":153,"ajaxHandlers":224,"restRoutes":225,"shortcodes":226,"cronEvents":227,"entryPointCount":28,"unprotectedCount":28},[154,160,163,167,170,175,179,183,190,194,198,203,207,211,213,215,217,221],{"type":155,"name":156,"callback":157,"file":158,"line":159},"action","admin_enqueue_scripts","enqueue_styles","inc\\class-custom-image-meta-box.php",115,{"type":155,"name":156,"callback":161,"file":158,"line":162},"enqueue_scripts",116,{"type":155,"name":164,"callback":165,"file":158,"line":166},"add_meta_boxes","add_meta_box",117,{"type":155,"name":168,"callback":168,"file":158,"line":169},"save_post",118,{"type":155,"name":171,"callback":172,"file":173,"line":174},"admin_init","check_installation_date","inc\\class-dotorg-plugin-review.php",79,{"type":155,"name":171,"callback":176,"priority":177,"file":173,"line":178},"set_no_bug",5,80,{"type":155,"name":180,"callback":181,"file":173,"line":182},"admin_notices","display_admin_notice",162,{"type":184,"name":185,"callback":186,"priority":187,"file":188,"line":189},"filter","theme_mod_header_image","header_image_filter",20,"inc\\class-unique-headers-display.php",58,{"type":184,"name":191,"callback":192,"priority":187,"file":188,"line":193},"wp_calculate_image_srcset","header_srcset_filter",59,{"type":184,"name":195,"callback":196,"file":188,"line":197},"theme_mod_header_image_data","modify_header_image_data",60,{"type":155,"name":199,"callback":200,"priority":177,"file":201,"line":202},"plugins_loaded","localization","inc\\class-unique-headers-instantiate.php",52,{"type":155,"name":204,"callback":205,"priority":187,"file":201,"line":206},"init","instantiate_classes",53,{"type":155,"name":171,"callback":208,"file":209,"line":210},"add_fields","inc\\class-unique-headers-taxonomy-header-images.php",109,{"type":184,"name":185,"callback":186,"priority":177,"file":209,"line":212},110,{"type":184,"name":191,"callback":192,"priority":187,"file":209,"line":214},111,{"type":184,"name":195,"callback":196,"file":209,"line":216},112,{"type":184,"name":218,"callback":218,"file":219,"line":220},"unique_header_fallback_images","inc\\legacy.php",78,{"type":155,"name":204,"callback":222,"file":219,"line":223},"unique_header_wpdbfix",97,[],[],[],[],{"dangerousFunctions":229,"sqlUsage":230,"outputEscaping":233,"fileOperations":28,"externalRequests":28,"nonceChecks":102,"capabilityChecks":89,"bundledLibraries":238},[],{"prepared":231,"raw":28,"locations":232},2,[],{"escaped":220,"rawEcho":89,"locations":234},[235],{"file":173,"line":236,"context":237},179,"raw output",[],[240,259,279],{"entryPoint":241,"graph":242,"unsanitizedCount":28,"severity":258},"\u003Cclass-custom-image-meta-box> (inc\\class-custom-image-meta-box.php:0)",{"nodes":243,"edges":255},[244,249],{"id":245,"type":246,"label":247,"file":158,"line":248},"n0","source","$_POST (x4)",280,{"id":250,"type":251,"label":252,"file":158,"line":253,"wp_function":254},"n1","sink","echo() [XSS]",311,"echo",[256],{"from":245,"to":250,"sanitized":257},true,"low",{"entryPoint":260,"graph":261,"unsanitizedCount":89,"severity":278},"storing_taxonomy_data (inc\\class-unique-headers-taxonomy-header-images.php:212)",{"nodes":262,"edges":274},[263,266,269],{"id":245,"type":246,"label":264,"file":209,"line":265},"$_POST",234,{"id":250,"type":267,"label":268,"file":209,"line":265},"transform","→ get_attachment_id_from_url()",{"id":270,"type":251,"label":271,"file":209,"line":272,"wp_function":273},"n2","get_var() [SQLi]",288,"get_var",[275,277],{"from":245,"to":250,"sanitized":276},false,{"from":250,"to":270,"sanitized":276},"high",{"entryPoint":280,"graph":281,"unsanitizedCount":89,"severity":278},"\u003Cclass-unique-headers-taxonomy-header-images> (inc\\class-unique-headers-taxonomy-header-images.php:0)",{"nodes":282,"edges":292},[283,285,287,288,290],{"id":245,"type":246,"label":247,"file":209,"line":284},229,{"id":250,"type":251,"label":252,"file":209,"line":286,"wp_function":254},340,{"id":270,"type":246,"label":264,"file":209,"line":265},{"id":289,"type":267,"label":268,"file":209,"line":265},"n3",{"id":291,"type":251,"label":271,"file":209,"line":272,"wp_function":273},"n4",[293,294,295],{"from":245,"to":250,"sanitized":257},{"from":270,"to":289,"sanitized":276},{"from":289,"to":291,"sanitized":276},{"summary":297,"deductions":298},"The \"unique-headers\" plugin v1.9.3 demonstrates a generally strong security posture with excellent adherence to secure coding practices. The absence of any recorded vulnerabilities in its history is a significant positive indicator. Furthermore, the static analysis reveals a minimal attack surface, with no AJAX handlers, REST API routes, shortcodes, or cron events exposed. Crucially, all SQL queries utilize prepared statements, and output escaping is nearly perfect, mitigating common web vulnerabilities like SQL injection and cross-site scripting (XSS). Nonce and capability checks are also present, indicating an effort to control access to plugin functionalities.\n\nHowever, the taint analysis reveals two flows with unsanitized paths, categorized as high severity. While these are not exposed as direct entry points due to the plugin's limited attack surface, the presence of such flows warrants attention. It suggests a potential weakness if a future update were to inadvertently expose these paths or if an indirect path exists that was not detected. The lack of explicit external HTTP requests is also a good sign, reducing the risk of SSRF vulnerabilities. The plugin's vulnerability history is clean, which is reassuring. Overall, the plugin is well-secured, but the identified taint flows present a specific, albeit contained, area for improvement.",[299],{"reason":300,"points":301},"High severity taint flows with unsanitized paths",12,"2026-03-16T17:33:29.355Z",{"wat":304,"direct":313},{"assetPaths":305,"generatorPatterns":308,"scriptPaths":309,"versionParams":310},[306,307],"\u002Fwp-content\u002Fplugins\u002Funique-headers\u002Fadmin.css","\u002Fwp-content\u002Fplugins\u002Funique-headers\u002Fadmin.js",[],[307],[311,312],"unique-headers\u002Fadmin.css?ver=","unique-headers\u002Fadmin.js?ver=",{"cssClasses":314,"htmlComments":315,"htmlAttributes":316,"restEndpoints":318,"jsGlobals":319,"shortcodeOutput":320},[],[],[317],"custom_meta_image_name",[],[317],[]]