[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fiRRXEEibe7QrgPogqVoA7C5lb6wZeF2VCRPdy8Oz1Rw":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":38,"analysis":138,"fingerprints":338},"wp-replace-unlicensed-and-broken-images","WP Replace Unlicensed and Broken Images","1.0.5","CK MacLeod","https:\u002F\u002Fprofiles.wordpress.org\u002Fck-macleod\u002F","\u003Cp>WP Replace Unlicensed and Broken Images (WP-RUBI) replaces images selected by date, post, category, author, file location, and\u002For image type with a user-adjustable default image on a site’s public-facing Front End – in other words, on display – and will also, unlike common Javascript\u002FjQuery solutions for broken images and links, prevent load errors and search engine “crawl” errors that can harm Search Engine Ranking. A primary use will be for sites where – due to policy change or concerns relating to usage rights and copyright infringement – administrators need to expunge images that have been used without permission or under lapsed or lapsing usage licenses, while avoiding a time-consuming, complex, hard-to-reverse, potentially costly and inefficient database purge. Another use will be for sites whose image archives have been corrupted or lost.\u003C\u002Fp>\n\u003Cp>WP-RUBI will do nothing until the site administrator has determined which images or types of images to remove and replace. All post images and image links that are matched in posts selected either individually or globally – for instance, all posts from before a certain publication date – will be replaced by links to a simple, customizable “image removed” image when the page is displayed: The change is made just-in-time as the post is loaded, altering the page “source” as rendered, but \u003Cem>not\u003C\u002Fem> affecting the database. If at some future time the site operator wishes to restore lost images, or “whitelist” a post, author, category, time frame, or image type, then the original links and formatting information will still be easily accessible.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WP-RUBI is a powerful plug-in, potentially allowing for far-reaching alterations in your site’s appearance, but it makes no permanent changes to your posts database or image library or any other files: Changes can be immediately rolled back by resetting to defaults via Main Settings, or by de-activating (or uninstalling). Still, as generally with WordPress Plug-Ins, the further your installation diverges from a “basic” WordPress site – by employing unique frameworks, complex themes or plug-ins, or specialized customizations – and the higher your traffic, the more care and caution you should employ when installing, activating, and configuring WP-RUBI.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Also note that WP-RUBI is designed with typical WordPress sites in mind. Though it can also be set to remove and replace copy-protected and externally served images (as long as display relies on \u003Ccode>\u003Cimg src=\u003C\u002Fcode> tags), it may not function optimally, if at all, or may require careful adjustment, when used with sites or themes relying on unusual image delivery and display methods, or that significantly diverge from other standard practices: “gallery”-style themes that may extract image links from post content and convert them into CSS backgrounds, for example. More commonly, caching and copy protection plug-ins, CDNs lacking purge options, and so on, may need to be flushed and reset, or in some instances disabled, for WP-RUBI to achieve the intended results.\u003C\u002Fp>\n\u003Ch3>Background\u003C\u002Fh3>\n\u003Cp>In recent years, with the maturation of the internet and especially of the “blogosphere,” sites where photos and other images have been copied and displayed without concern for the rights of artists and services have come under enhanced scrutiny, sometimes resulting in costly lawsuits and threats of lawsuits. In addition, some site operators, especially as they have gotten more successful, have simply undergone a change in thinking about common internet practices viewed by some artists as theft.\u003C\u002Fp>\n\u003Cp>Many or perhaps most bloggers still operate without concern for image licensing, and some have discovered – sometimes at significant cost – that, as one victim of a “copyright-trolling” lawyer put it, “Current Fair Use image copyright laws say that you’re financially liable for posting copyrighted images.”* You may be liable for unlicensed use of images even if:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>You did it by accident\u003C\u002Fli>\n\u003Cli>You immediately take down the picture after receiving a DMCA takedown notice\u003C\u002Fli>\n\u003Cli>The picture is resized\u003C\u002Fli>\n\u003Cli>The picture is licensed to your web developer\u003C\u002Fli>\n\u003Cli>You link back to the photo source and cite the photographer’s name\u003C\u002Fli>\n\u003Cli>Your site isn’t commercial and you make no money from your blog\u003C\u002Fli>\n\u003Cli>You have a disclaimer on the site\u003C\u002Fli>\n\u003Cli>The pic is embedded instead of saved on your server\u003C\u002Fli>\n\u003Cli>You found it on the Internet (that’s not an excuse!)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The core of this plug-in was originally implemented on a large site in one such predicament: The operators, after having been challenged by a copyright lawyer demanding thousands of dollars in payment for the use of a single unpaid-for image, and facing a steep legal bill even in pursuit of an eventually successful defense, decided to stop displaying any images whose usage rights were not fully cleared.\u003C\u002Fp>\n\u003Cp>The operators were left with thousands of unlicensed images associated with archived posts – along with many images that were used fairly (because original to the site or author, or in the public domain). Finding and replacing images as well as image links presented numerous complications: Simply deleting image archives rather than editing the posts would produce numerous load errors, which would harm the site’s search engine ranking, produce unprofessional “broken images” display, and make restoration of good posts difficult where not impossible. Using a Javascript solution that obscured broken images and links might improve display, but would leave errors in place, and have no effect on unwanted images that were not deleted.\u003C\u002Fp>\n\u003Ch3>Using WP Replace Unlicensed and Broken Images\u003C\u002Fh3>\n\u003Cp>WP Replace Unwanted and Broken Images enables an Administrator to bring his or her site into effective compliance quickly, and then to recover “good” images if desired, while preserving archives.  The plug-in adds numerous additional choices and other improvements to the earlier “WP Replace Old Images,” making it easier for an Administrator to refine the “purge,” and for the site’s editors and authors to restore old posts and archives to full health.\u003C\u002Fp>\n\u003Cp>Improvements include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Posts can be excluded or included via Edit Post\u003C\u002Fli>\n\u003Cli>Posts can be excluded or included via All Posts Quick and Bulk Editing\u003C\u002Fli>\n\u003Cli>Featured images (or thumbnails) also can be removed\u002Freplaced\u003C\u002Fli>\n\u003Cli>Easy Inclusions or exclusion from image removal\u002Freplacement for authors and categories, and for “after” as well as “before” dates\u003C\u002Fli>\n\u003Cli>Replacement images provided with “cache-busting” queries (so changes to Front End can take effect immediately)\u003C\u002Fli>\n\u003Cli>User can upload own replacement image from Settings page, or choose “blank” and “erasure” replacement modes\u003C\u002Fli>\n\u003Cli>Installation routine preserves old settings on upgrade\u003C\u002Fli>\n\u003Cli>Detailed usage notes\u002Ftips\u002Fdocumentation\u003C\u002Fli>\n\u003Cli>Translation-ready\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>ALSO NOTE DISCLAIMER: Developer makes no promises or guarantees that use of this plug-in will secure a site against all claims of copyright infringement based on past practices. No one can do that!\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>*Description and list of Fair Use liability issues from \u003Ca href=\"http:\u002F\u002Fwww.contentfac.com\u002Fcopyright-infringement-penalties-are-scary\u002F\" rel=\"nofollow ugc\">“The $8,000 Mistake That All Bloggers Should Beware”\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Additional Info\u003C\u002Fh3>\n\u003Ch4>Still to Come\u003C\u002Fh4>\n\u003Col>\n\u003Cli>“Recuperation” workflow – list and select cured\u002Funcured posts\u002Fauthors\u002Fcategories\u003C\u002Fli>\n\u003Cli>Additional image selection patterns and inclusion\u002Fexclusion options\u003C\u002Fli>\n\u003Cli>Optional database purge\u003C\u002Fli>\n\u003Cli>Development of Digital Artists Alliance site and network\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Check the \u003Ca href=\"http:\u002F\u002Fckmacleod.com\u002Fwordpress-plugins\u002Fwordpress-replace-unlicensed-and-broken-images\u002F\" rel=\"nofollow ugc\">WP-RUBI home pages\u003C\u002Fa> for additional background, usage tips, and minor updates, or to \u003Ca href=\"http:\u002F\u002Fckmacleod.com\u002Fwordpress-plugins\u002Fwordpress-replace-unlicensed-and-broken-images\u002Fget-replace-images-support\u002F\" rel=\"nofollow ugc\">contact the developer\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Thanks!\u003C\u002Fh4>\n\u003Cp>To all of the developers and everyday code-hackers, far too numerous to name, upon whose work I have depended. And  Thanks to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fthatgrrl\" rel=\"nofollow ugc\">thatgrrl\u003C\u002Fa> for catching a bad link to the plug-in’s home page!\u003C\u002Fp>\n","Selectively replace broken, unlicensed, and other problematic images on a site's public-facing \"Front End.\"",20,2908,76,4,"2017-03-13T22:51:00.000Z","4.7.32","4.3","",[20,21,22,23,24],"copyright","dmca","images","takedown","usage-rights","https:\u002F\u002Fckmacleod.com\u002Fwordpress-plugins\u002Fwordpress-replace-unlicensed-and-broken-images\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-replace-unlicensed-and-broken-images.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":35,"computed_at":37},"ck-macleod",540,80,30,"2026-04-04T14:46:18.727Z",[39,63,81,103,121],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":61,"last_vuln_date":62,"fetched_at":30},"dmca-badge","DMCA Protection Badge","2.2.0","NewClarity","https:\u002F\u002Fprofiles.wordpress.org\u002Fnewclarity\u002F","\u003Cp>The DMCA.com Protection plugin for WordPress allows you to easily integrate DMCA.com’s protection badges into your WordPress site.\u003Cbr \u002F>\nOnce the badge is installed, you can see all your protected pages on your \u003Ca href=\"https:\u002F\u002Fwww.dmca.com\u002Fdashboard?r=wpdb\" rel=\"nofollow ugc\">DMCA.com Dashboard\u003C\u002Fa>\u003Cbr \u002F>\nFor more information about the features & benefits of the service visit \u003Ca href=\"https:\u002F\u002Fwww.dmca.com\u002Fprotectionpro.aspx?ad=wpo\" rel=\"nofollow ugc\">DMCA.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.dmca.com\u002FBadges.aspx?ad=wpo\" rel=\"nofollow ugc\">&raquo; Register\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.dmca.com\u002FProtection.aspx?ad=wpo\" rel=\"nofollow ugc\">&raquo; Learn More\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwww.dmca.com\u002FToolkit\u002Fsignup.aspx?lnk=wps&mpi=DMCA%20Toolkit\" rel=\"nofollow ugc\">&raquo; Upgrade to Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Once installed and activated, you can use the DMCA Protection Badge page in your Dashboard’s Settings Menu to specify how your choice of badge should be displayed in posts and pages. You can also choose to display your badge site-wide using the DMCA Badge Widget. You can use the badges for free but we suggest that you sign up for an account at dmca.com in order to receive the full benefit of the certified badges.\u003C\u002Fp>\n","The DMCA Protection plugin for WordPress lets you install protection badges on your site in order to deter content thieves and protect your content",1000,149147,64,19,"2025-08-16T14:49:00.000Z","6.8.5","6.0","8.0",[56,20,21,57,23],"badge","protection","https:\u002F\u002Fwww.dmca.com\u002FWordPress\u002Fdefault.aspx?r=wpd","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdmca-badge.zip",78,1,"2025-12-31 00:00:00",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":74,"last_updated":75,"tested_up_to":52,"requires_at_least":18,"requires_php":18,"tags":76,"homepage":18,"download_link":80,"security_score":73,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"fsm-custom-featured-image-caption","FSM Custom Featured Image Caption","1.25.1","fesomia","https:\u002F\u002Fprofiles.wordpress.org\u002Ffesomia\u002F","\u003Cp>This plugin allows adding custom captions to the featured images of the posts. It works with both Gutenberg and the classic editor.\u003C\u002Fp>\n\u003Cp>That’s how it works:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If no caption is indicated, the plugin will display the generic caption defined in the Media Library.\u003C\u002Fli>\n\u003Cli>If a caption is indicated, the plugin will display this caption instead of the generic caption defined in the Media Library.\u003C\u002Fli>\n\u003Cli>If no caption is indicated and no legend exists in the Media Library, none will be displayed (obviously).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The plugin also allows to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Hide the caption, either the original from the Media Library or the custom one.\u003C\u002Fli>\n\u003Cli>Entirely hide the featured image in the public view, without having to de-attach it from the post.\u003C\u002Fli>\n\u003Cli>Configure several options to modify the styles used in the caption.\u003C\u002Fli>\n\u003Cli>Output the text of the caption anywhere in your theme using a custom function.\u003C\u002Fli>\n\u003Cli>Output the featured image with caption inside your content with a shortcode.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For maintaining a semantic code, this plugin writes the caption in a \u003Ccode>\u003Cfigcaption>\u003C\u002Fcode> label.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>New in version 1.21\u003C\u002Fstrong>: Compatibility with Divi themes. This is an experimental feature to allow the plugin to work with Divi, as many users requested. Note that it may not work for all layouts, and that since it replaces the function divi uses to show featured images, when enabled it may potentially cause problems with older versions of Divi or if the core theme is updated. As always, it may also be necessary to add custom css to your theme to show the captions the way you want\u003C\u002Fp>\n\u003Ch4>Format\u003C\u002Fh4>\n\u003Cp>The caption will adopt the format specified for the \u003Ccode>\u003Cfigcaption>\u003C\u002Fcode> element and the wp-caption-text CSS class, which is common in WordPress themes.\u003C\u002Fp>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Cp>The plugin works out of the box. To start using it, all you need to do is activate it and play with the new options in your edit page. For advanced users, you will found a special settings page for fine-tuning some details.\u003C\u002Fp>\n\u003Cp>Go to \u003Cem>Settings > FSM Custom Featured Image Caption\u003C\u002Fem> to set up the CSS and HTML parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>CSS for caption text\u003C\u002Fstrong>: Choose one of the options to modify the class\u002Fstyles that will be used in the caption container (by default is wp-caption-text). Note that you can indicate more than one class separated with spaces.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Allow HTML code\u003C\u002Fstrong>: Check it if you want to parse the caption text as HTML if you need the browser to parse HTML tags instead of showing them. Keep in mind that incorrect HTML code or orphan tags can break your layout.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Allow shortcodes\u003C\u002Fstrong>: Check it if you want to parse the shortcodes present in the caption text. Note that if the shortcode returns HTML it will not be filtered, regardless of the “allow html code” option state; also, complex shortcodes output may alter your layout. When activated, you can write the shortcode you want to use in the caption box in the usual way, i.e. : \u003Ccode>Venetian landscape [myshortcode option1=\"text\"]\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Show image captions in lists\u003C\u002Fstrong>: Disabled by default. Check if you want to show the caption when the featured image appears in lists, i.e. in a category page, in a widget with latest posts, etc. Note that some themes may add containers around the image (i.e. a link tag) witch can conflict with the aspect of the caption.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enable compatibility with Divi themes\u003C\u002Fstrong>: Disabled by default. Allows the plugin to work with Divi. Please read the description and the FAQ sections for more info about this option\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>We’ve added a shortcode that allows you to put the featured image (and it’s caption) in your page. Just write \u003Ccode>[FSM_featured_image]\u003C\u002Fcode> anywhere in the content edit box of your post or page to display it. You can also select the size of the image with the parameter “size”. Note that defined image sizes may differ between WordPress themes. The defaults are these: thumbnail, medium, medium_large, large and full.\u003C\u002Fp>\n\u003Cp>By using the shortcode, the plugin will try to remove the featured image from your theme’s default position to prevent it from appearing twice. Anyway, this is as this is an experimental feature and results may fluctuate. It also will not appear in lists.\u003C\u002Fp>\n\u003Cp>Note that the usage of the shortcode is not related to the “Allow shortcodes” option in the settings page.\u003C\u002Fp>\n\u003Cp>Usage example: \u003Ccode>[FSM_featured_image size=thumb]\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch4>For developers\u003C\u002Fh4>\n\u003Cp>The plugin comes with two public functions that allow you to get or output the featured image caption of the current post anywhere in your template.\u003C\u002Fp>\n\u003Cp>Once the plugin is activated, use \u003Ccode>\u003C?php get_FSM_featured_image_caption()?>\u003C\u002Fcode> to return a string containing the text that you can assign to a variable or \u003Ccode>\u003C?php the_FSM_featured_image_caption()?>\u003C\u002Fcode> where you like the caption be displayed.\u003C\u002Fp>\n\u003Cp>Both functions accept parameters passed inside an array with the following keys:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>tag\u003C\u002Fstrong>: The tag (without brackets) you want to use as a container. By default is \u003Ccode>div\u003C\u002Fcode>. If set to false, it will remove it and will return the caption text.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>class\u003C\u002Fstrong>: The name of the class\u002Fclasses you want to use for the container. Use spaces to separate them. Empty by default.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>style\u003C\u002Fstrong>: The CSS styles to be used in the container tag. Empty by default.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>force_visibility\u003C\u002Fstrong>: When set to true, it ignores the hide caption option defined by the post editor. Useful for displaying your caption in a different place, but showing the featured image. Default: \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>allow_html\u003C\u002Fstrong>: like in the settings page, if set to true, allows the browser to parse the HTML code inside the caption text, else shows it as plain text. Default: \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>allow_shortcodes\u003C\u002Fstrong>: again the same behaviour than in the settings page. Default: \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ignore_original_caption\u003C\u002Fstrong>: stops using captions defined in the media library as a substitution when the caption field is empty. Default: \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Usage example: `php\u003Cbr \u002F>\nthe_FSM_featured_image_caption( array(‘tag’ => ‘p’, ‘class’ => ‘class1 class2’, ‘style’ => ‘color: red;’, ‘allow_html’=> true, ‘allow_shortcodes’=>true );\u003C\u002Fp>\n\u003Cpre>\u003Ccode>In Gutenberg themes, the plugin generates a nested \u003Cfigure> tag. If you need to ensure the resulting HTML code is syntactically proper, you can try using this filter in your theme functions.php file: add_filter('render_block_core\u002Fpost-featured-image', 'FSMCFIC_featured_image_block_fix', 10, 2);`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>The plugin comes up with three complete translations:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English (en)\u003C\u002Fli>\n\u003Cli>Spanish (es_ES)\u003C\u002Fli>\n\u003Cli>Catalan (ca)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can contribute to translating it into more languages at https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Ffsm-custom-featured-image-caption\u002F\u003C\u002Fp>\n\u003Ch4>Coming soon\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>More options for selecting the text to be used as the caption, allowing to choose amongst image Title \u002F Caption \u002F Alt Text \u002F Description and custom text.\u003C\u002Fli>\n\u003Cli>Options to fine-tune the shortcode.\u003C\u002Fli>\n\u003Cli>Have more ideas? We are open to hearing!\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows adding custom captions to the featured images of the posts.",5000,121039,92,22,"2025-01-08T11:33:00.000Z",[77,20,78,79,22],"caption","credits","featured-image","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffsm-custom-featured-image-caption.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":91,"num_ratings":92,"last_updated":93,"tested_up_to":94,"requires_at_least":95,"requires_php":96,"tags":97,"homepage":101,"download_link":102,"security_score":73,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"picdefense-io-image-copyright-risk-checker","PicDefense.io – Your Guard Against Image Copyright Infringement","1.1.4","PicDefense.io","https:\u002F\u002Fprofiles.wordpress.org\u002Fpicdefense\u002F","\u003Cp>Has a copyright enforcer served you with a demand letter for an image you used on your site? Are you concerned about potential copyright risks associated with your current images? PicDefense.io is your ultimate solution.\u003C\u002Fp>\n\u003Cp>Our WordPress plugin doesn’t just do a reverse image search; it acts as your shield against potential copyright infringement. It scans your website’s images, assesses their copyright risk and now, with our new feature, allows you to replace any high-risk images with free stock photography from Pexels.\u003C\u002Fp>\n\u003Cp>After installing this plugin, it will gather a list of image links from your wordpress site and send them to us (PicDefense.io) via our custom API endpoints. Follow the instructions to create your account and link your WordPress site with your PicDefense.io account. Then, let us do the rest.\u003C\u002Fp>\n","Compile list of images on your Wordpress site and submit to PicDefense.io for copyright risk analysis.",100,3021,54,3,"2025-02-03T20:26:00.000Z","6.7.5","6.0.2","7.3",[20,22,98,99,100],"picdefense","replacement","watermark","https:\u002F\u002Fpicdefense.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpicdefense-io-image-copyright-risk-checker.1.1.4.zip",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":89,"num_ratings":61,"last_updated":113,"tested_up_to":114,"requires_at_least":115,"requires_php":116,"tags":117,"homepage":18,"download_link":120,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"image-source-overlay","Image Source Overlay","1.1.3","Eduard Stehlík","https:\u002F\u002Fprofiles.wordpress.org\u002Fstehled\u002F","\u003Cp>We have developed a plugin, so you don’t have to be worried about being liable for violating the copyright law and not crediting\u003Cbr \u002F>\nimage authors.\u003C\u002Fp>\n\u003Cp>This plugin adds a small overlay to images with the source and link.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Choose from 4 overlay positions. Top left, top right, bottom left, bottom right.\u003C\u002Fli>\n\u003Cli>Add links or simply leave only source name.\u003C\u002Fli>\n\u003Cli>Change overlay positions depending on image\u003C\u002Fli>\n\u003Cli>Enable on all pages or only post pages.\u003C\u002Fli>\n\u003Cli>Translate to your language with ease.\u003C\u002Fli>\n\u003Cli>Choose between dofollow and nofollow for links.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Set default options in settings\u003C\u002Fli>\n\u003Cli>Navigate to media library\u003C\u002Fli>\n\u003Cli>Select image\u003C\u002Fli>\n\u003Cli>Scroll down to our custom fields with source name and source url\u003C\u002Fli>\n\u003Cli>Enter image source and optionally url\u003C\u002Fli>\n\u003Cli>All set\u003C\u002Fli>\n\u003C\u002Fol>\n","With Image Source Overlay you can manage image sources in media library. Plugin will then generate small overlay for every image crediting the origina &hellip;",60,3253,"2024-03-30T19:06:00.000Z","6.4.8","4.6","5.6",[118,20,78,22,119],"captions","source","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimage-source-overlay.1.1.3.zip",{"slug":122,"name":123,"version":124,"author":125,"author_profile":126,"description":127,"short_description":128,"active_installs":111,"downloaded":129,"rating":28,"num_ratings":28,"last_updated":130,"tested_up_to":131,"requires_at_least":115,"requires_php":116,"tags":132,"homepage":136,"download_link":137,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-copyright","WP Copyright","2.0.4","zitrusblau","https:\u002F\u002Fprofiles.wordpress.org\u002Fzitrusblau\u002F","\u003Cp>This plugin can be used as a discrete but efficient tool for websites which have to make sure that copyright information for images is mandatory.\u003C\u002Fp>\n\u003Cp>How it works: It simply blurs all uploaded images. The original only gets restored when the copyright info is set.\u003Cbr \u002F>\nThe text field for the copyright info is provided as a form field in the attachment details view.\u003C\u002Fp>\n\u003Cp>A simple but elegant solution to enforce copyright discipline among authors and editors.\u003C\u002Fp>\n\u003Cp>This plugin is compatible with the plugin “Enhanced Media Library” (tested with version 2.4.5).\u003C\u002Fp>\n","Enforces copyright discipline by blurring all uploaded images as long as the associated copyright info is undefined.",3863,"2019-01-23T10:03:00.000Z","4.9.29",[133,20,22,134,135],"blur","media-manager","media-upload","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-copyright","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-copyright.2.0.5.zip",{"attackSurface":139,"codeSignals":245,"taintFlows":328,"riskAssessment":329,"analyzedAt":337},{"hooks":140,"ajaxHandlers":232,"restRoutes":237,"shortcodes":238,"cronEvents":243,"entryPointCount":244,"unprotectedCount":61},[141,146,150,152,156,160,164,169,173,177,182,186,190,194,198,202,205,208,212,216,220,224,228],{"type":142,"name":143,"callback":144,"file":145,"line":11},"action","admin_init","cks_rui_register_settings","admin.php",{"type":142,"name":147,"callback":148,"file":145,"line":149},"admin_menu","cks_rui_create_menu",21,{"type":142,"name":143,"callback":151,"file":145,"line":74},"cks_rui_check_reset",{"type":142,"name":153,"callback":154,"file":145,"line":155},"admin_print_scripts","cks_rui_admin_scripts",73,{"type":142,"name":157,"callback":158,"file":145,"line":159},"admin_print_styles","cks_rui_admin_styles",75,{"type":142,"name":161,"callback":162,"file":145,"line":163},"admin_enqueue_scripts","enqueue_admin_js",82,{"type":142,"name":165,"callback":166,"file":167,"line":168},"plugins_loaded","cks_rui_load_columns_and_metaboxes","admin_extra.php",16,{"type":142,"name":170,"callback":171,"file":167,"line":172},"add_meta_boxes","cks_rui_display_meta_box",27,{"type":174,"name":175,"callback":176,"file":167,"line":36},"filter","manage_posts_columns","cks_rui_columns_head",{"type":142,"name":178,"callback":179,"priority":180,"file":167,"line":181},"manage_posts_custom_column","cks_rui_columns_content",10,31,{"type":174,"name":183,"callback":184,"file":167,"line":185},"manage_pages_columns","cks_rui_page_columns_head",34,{"type":142,"name":187,"callback":188,"priority":180,"file":167,"line":189},"manage_pages_custom_column","cks_rui_page_column_content",35,{"type":142,"name":191,"callback":192,"file":167,"line":193},"quick_edit_custom_box","display_cks_rui_clear_images",39,{"type":142,"name":195,"callback":196,"file":167,"line":197},"bulk_edit_custom_box","display_cks_rui_clear_images_bulk",40,{"type":142,"name":199,"callback":200,"file":167,"line":201},"save_post","cks_rui_save_meta_box_data",215,{"type":142,"name":199,"callback":203,"file":167,"line":204},"save_quick_edit_clear_images",671,{"type":142,"name":165,"callback":206,"file":207,"line":172},"wp_rubi_check_version","cks_rui.php",{"type":142,"name":209,"callback":210,"file":207,"line":211},"admin_notices","cks_reset_notice__success",200,{"type":174,"name":213,"callback":214,"priority":89,"file":207,"line":215},"the_content","cks_replace_content_images",616,{"type":174,"name":217,"callback":218,"priority":11,"file":207,"line":219},"wp_get_attachment_image_src","cks_rui_remove_featured_image",723,{"type":174,"name":221,"callback":222,"priority":180,"file":207,"line":223},"wp_get_attachment_image_attributes","cks_rui_set_thumbnail_display_none",762,{"type":142,"name":225,"callback":226,"file":207,"line":227},"wp_footer","cks_rui_add_after_footer_badge",942,{"type":142,"name":229,"callback":230,"file":207,"line":231},"init","cks_rui_load_translation_file",959,[233],{"action":234,"nopriv":235,"callback":234,"hasNonce":235,"hasCapCheck":235,"file":167,"line":236},"cks_rui_save_bulk_edit",false,705,[],[239],{"tag":240,"callback":241,"file":207,"line":242},"add_cks_rui_badge","cks_rui_add_badge",956,[],2,{"dangerousFunctions":246,"sqlUsage":247,"outputEscaping":249,"fileOperations":28,"externalRequests":28,"nonceChecks":14,"capabilityChecks":14,"bundledLibraries":327},[],{"prepared":28,"raw":28,"locations":248},[],{"escaped":181,"rawEcho":193,"locations":250},[251,254,256,258,260,262,263,265,267,269,270,272,274,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,313,315,317,319,321,323,325],{"file":145,"line":252,"context":253},325,"raw output",{"file":145,"line":255,"context":253},371,{"file":145,"line":257,"context":253},425,{"file":145,"line":259,"context":253},562,{"file":145,"line":261,"context":253},626,{"file":145,"line":261,"context":253},{"file":145,"line":264,"context":253},630,{"file":145,"line":266,"context":253},748,{"file":145,"line":268,"context":253},752,{"file":145,"line":268,"context":253},{"file":145,"line":271,"context":253},754,{"file":145,"line":273,"context":253},756,{"file":145,"line":273,"context":253},{"file":145,"line":276,"context":253},758,{"file":145,"line":278,"context":253},802,{"file":145,"line":280,"context":253},807,{"file":145,"line":282,"context":253},810,{"file":145,"line":284,"context":253},813,{"file":145,"line":286,"context":253},816,{"file":167,"line":288,"context":253},145,{"file":167,"line":290,"context":253},361,{"file":167,"line":292,"context":253},365,{"file":167,"line":294,"context":253},392,{"file":167,"line":296,"context":253},393,{"file":167,"line":298,"context":253},394,{"file":167,"line":300,"context":253},395,{"file":167,"line":302,"context":253},411,{"file":167,"line":304,"context":253},431,{"file":167,"line":306,"context":253},503,{"file":167,"line":308,"context":253},507,{"file":167,"line":310,"context":253},534,{"file":167,"line":312,"context":253},535,{"file":167,"line":314,"context":253},536,{"file":167,"line":316,"context":253},537,{"file":167,"line":318,"context":253},553,{"file":167,"line":320,"context":253},573,{"file":167,"line":322,"context":253},600,{"file":167,"line":324,"context":253},643,{"file":207,"line":326,"context":253},936,[],[],{"summary":330,"deductions":331},"The \"wp-replace-unlicensed-and-broken-images\" plugin v1.0.5 exhibits a mixed security posture. On the positive side, it demonstrates good practices by avoiding dangerous functions, using prepared statements for all SQL queries, performing file operations, and making external HTTP requests. The presence of nonce and capability checks, along with no recorded vulnerabilities, suggests a generally cautious development approach and a history of security awareness. However, a significant concern arises from its attack surface. The plugin exposes one AJAX handler without any authentication checks, which could be a potential entry point for malicious activity if not properly secured by WordPress's default AJAX handling. Furthermore, the static analysis reveals that a substantial portion of its output (56%) is not properly escaped, increasing the risk of Cross-Site Scripting (XSS) vulnerabilities, especially if any of the unescaped data originates from user input or external sources.",[332,334],{"reason":333,"points":180},"AJAX handler without auth check",{"reason":335,"points":336},"High percentage of unescaped output",8,"2026-03-16T23:02:14.811Z",{"wat":339,"direct":347},{"assetPaths":340,"generatorPatterns":342,"scriptPaths":343,"versionParams":344},[341],"\u002Fwp-content\u002Fplugins\u002Fwp-replace-unlicensed-and-broken-images\u002Fimages\u002Fimage_removed.svg",[],[],[345,346],"wp-replace-unlicensed-and-broken-images\u002Fstyle.css?ver=","wp-replace-unlicensed-and-broken-images\u002Fadmin.js?ver=",{"cssClasses":348,"htmlComments":349,"htmlAttributes":350,"restEndpoints":353,"jsGlobals":354,"shortcodeOutput":355},[],[],[351,352],"cks_rui_options","_rui_reset_nonce",[],[],[]]