[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3-3ba7nDdz0jA-7giwab7m1VYmhedQKEur3sqC3NAxU":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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":132,"fingerprints":239},"protect-content","Text & Image Protector","1.0","imaprogrammer","https:\u002F\u002Fprofiles.wordpress.org\u002Fimaprogrammer\u002F","\u003Cp>This is a really simple plugin that let you chose for each post to have image protection and\u002For text protection\u003C\u002Fp>\n\u003Ch3>Development Blog\u003C\u002Fh3>\n\u003Cp>Please visit the plugin page at (http:\u002F\u002Fimaprogrammer.wordpress.com\u002F2011\u002F01\u002F07\u002Ftiprotector\u002F), and feel free to leave feedback, bug reports and comments.\u003C\u002Fp>\n","This is a really simple plugin that let you chose for each post to have image protection and\u002For text protection",20,6756,0,"2011-01-14T18:20:00.000Z","3.0.5","2.7","",[19,20,21,22,23],"protect-blog","protect-contentm","protect-images","protect-post","protect-text","http:\u002F\u002Fimaprogrammer.wordpress.com\u002F2011\u002F01\u002F07\u002Ftiprotector\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprotect-content.1.0.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},2,60,64,30,69,"2026-04-04T11:04:54.003Z",[38,60,79,95,112],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":46,"num_ratings":48,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":58,"download_link":59,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"simple-wp-content-protector","Simple Content Protector","2.0.0","Raju Ahmed","https:\u002F\u002Fprofiles.wordpress.org\u002Frajubdpro\u002F","\u003Cp>\u003Cstrong>🛡️ Comprehensive Content Protection Plugin for WordPress – Protect Your Content from Copying and Unauthorized Access\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Simple Content Protector is a powerful and easy-to-use WordPress plugin that helps protect your website content from being copied, stolen, or inspected. With advanced features and flexible settings, you can customize protection levels according to your needs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Perfect for:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Content creators who want to protect their work\u003Cbr \u002F>\n* Businesses protecting proprietary information\u003Cbr \u002F>\n* Bloggers wanting to prevent content theft\u003Cbr \u002F>\n* Online course creators\u003Cbr \u002F>\n* Digital product sellers\u003Cbr \u002F>\n* Any WordPress site owner who values content security\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Core Protection Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>✅ Disables Mouse Right Click\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+C (Copy)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+X (Cut)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+V (Paste)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+U (View Source)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+A (Select All)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+S (Save Page)\u003C\u002Fli>\n\u003Cli>✅ Disables CTRL+P (Print)\u003C\u002Fli>\n\u003Cli>✅ Disables Image Dragging\u003C\u002Fli>\n\u003Cli>✅ Disables Text Selection\u003C\u002Fli>\n\u003Cli>✅ Disables F12 Developer Tools\u003C\u002Fli>\n\u003Cli>✅ Disables Screenshot\u002FCamera Capture (with 12-layer protection)\u003C\u002Fli>\n\u003Cli>✅ Disables Print Screen\u003C\u002Fli>\n\u003Cli>✅ Auto-hides content when screenshot tools detected\u003C\u002Fli>\n\u003Cli>✅ 200ms opacity changes to break screenshot tools\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Advanced Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>✅ \u003Cstrong>Role-Based Protection\u003C\u002Fstrong> – Apply protection to specific user roles\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Per-Post Protection Control\u003C\u002Fstrong> – Enable\u002Fdisable protection on individual pages\u002Fposts\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Exclude Specific Pages\u003C\u002Fstrong> – Whitelist pages where protection should be disabled\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Logged-in User Control\u003C\u002Fstrong> – Disable protection for logged-in users\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Selective Feature Toggle\u003C\u002Fstrong> – Choose which protection features to enable\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Image Protection\u003C\u002Fstrong> – Comprehensive image protection against dragging and copying\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Print Protection\u003C\u002Fstrong> – Prevent users from printing your content\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Developer Tools Protection\u003C\u002Fstrong> – Disable access to browser developer tools\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Watermark Website\u003C\u002Fstrong> – Add watermark to website content\u003C\u002Fli>\n\u003Cli>✅ \u003Cstrong>Meta Box for Per-Post Settings\u003C\u002Fstrong> – Easy control from post editor\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>How It Works:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The plugin uses a combination of JavaScript and CSS to prevent common content theft methods. It disables:\u003Cbr \u002F>\n– Right-click context menus\u003Cbr \u002F>\n– Keyboard shortcuts for copy, paste, print, etc.\u003Cbr \u002F>\n– Text selection\u003Cbr \u002F>\n– Image dragging\u003Cbr \u002F>\n– Developer tools access\u003Cbr \u002F>\n– Print functionality\u003Cbr \u002F>\n– And much more…\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Compatibility:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>WordPress 5.2 or higher\u003C\u002Fli>\n\u003Cli>PHP 7.2 or higher\u003C\u002Fli>\n\u003Cli>Works with all themes\u003C\u002Fli>\n\u003Cli>Compatible with major browsers\u003C\u002Fli>\n\u003Cli>No conflict with other plugins\u003C\u002Fli>\n\u003Cli>Lightweight and fast\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Security Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Securely protects your content from copy-paste\u003C\u002Fli>\n\u003Cli>Prevents source code inspection\u003C\u002Fli>\n\u003Cli>Blocks screen capture attempts\u003C\u002Fli>\n\u003Cli>Disables image downloading\u003C\u002Fli>\n\u003Cli>Protects against content scraping\u003C\u002Fli>\n\u003Cli>Detects developer tools usage\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>User-Friendly:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Simple one-click activation\u003C\u002Fli>\n\u003Cli>Easy-to-use admin interface\u003C\u002Fli>\n\u003Cli>No technical knowledge required\u003C\u002Fli>\n\u003Cli>Clear settings descriptions\u003C\u002Fli>\n\u003Cli>Visual feedback for all actions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Plugin URL:\u003C\u002Fstrong> https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-wp-content-protector\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Author:\u003C\u002Fstrong> rajubdpro\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Website:\u003C\u002Fstrong> http:\u002F\u002Fcodepopular.com\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Support:\u003C\u002Fstrong> Visit the plugin support forum for help\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by rajubdpro for CodePopular.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>This plugin does not collect, store, or transmit any personal data. All settings are stored locally in your WordPress database.\u003C\u002Fp>\n","Protect your WordPress content from copying. Disable copy, paste, right click, image dragging, and more.",100,4707,4,"2025-10-27T13:14:00.000Z","6.8.5","5.2","7.2",[54,55,56,57,21],"content-protection","copy-protection","disable-right-click","prevent-copying","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsimple-wp-content-protector","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-wp-content-protector.2.0.0.zip",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":13,"num_ratings":13,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":17,"tags":73,"homepage":77,"download_link":78,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"pigeon","Pigeon Paywall","1.6.6","Pigeon.io","https:\u002F\u002Fprofiles.wordpress.org\u002Fpigeonplatform\u002F","\u003Cp>Pigeon is paywall software that allows you to hide your content from users by specifying paywall rules. It offers account management and subscription based billing for your readers and subscribers. Enable this plugin to start using the Pigeon Paywall on your WordPress website.\u003C\u002Fp>\n\u003Cp>An account on \u003Ca href=\"https:\u002F\u002Fpigeon.io\" rel=\"nofollow ugc\">Pigeon.io\u003C\u002Fa> is required for this plugin to function. Your paywall rules and account management are setup and managed inside your Pigeon.io account. This plugin enables the JavaScript scripts and widgets required to block your content from non-subscribers based on the rules you’ve setup in your Pigeon.io account. Please read the \u003Ca href=\"https:\u002F\u002Fpigeon.io\u002Fterms-of-service\" rel=\"nofollow ugc\">terms of service\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fpigeon.io\u002Fprivacy-policy\" rel=\"nofollow ugc\">privacy policy\u003C\u002Fa> for Pigeon.io.\u003C\u002Fp>\n","The official Pigeon Paywall plugin for WordPress",80,2032,"2025-12-17T16:56:00.000Z","6.9.4","5.9",[74,61,75,76],"paywall","protect-posts","restrict-content","http:\u002F\u002Fpigeon.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpigeon.1.6.6.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":11,"downloaded":87,"rating":13,"num_ratings":13,"last_updated":88,"tested_up_to":50,"requires_at_least":89,"requires_php":17,"tags":90,"homepage":93,"download_link":94,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"simple-system-images","Simple System Images","1.0.0","Ready Steady Websites","https:\u002F\u002Fprofiles.wordpress.org\u002Freadysteadywebsites\u002F","\u003Cp>This plugin allows administrators to mark specific media files as “System Images”, which prevents them from being accidentally deleted by clients. A visual label is added in the Media Library and deletion is blocked programmatically.\u003C\u002Fp>\n","Mark Media Library images as 'System Images' to prevent accidental deletion by clients. Works in List View only.",338,"2025-05-18T20:18:00.000Z","6.0",[91,21,92],"media-library","system-images","https:\u002F\u002Freadysteadywebsites.com\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-system-images.1.0.0.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":46,"num_ratings":105,"last_updated":17,"tested_up_to":15,"requires_at_least":106,"requires_php":17,"tags":107,"homepage":109,"download_link":110,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":111},"password-protect-all-posts","Password Protect All Posts","0.1","volmar","https:\u002F\u002Fprofiles.wordpress.org\u002Fvolmar\u002F","\u003Cp>This plugin puts a global password selected by you on all posts. Based on Matt Mullenwegs plugin “Protect old posts”\u003C\u002Fp>\n\u003Cp>I’ve looked for a plugin like this but couldn’t find one that fitted my needs so i this one. I hope it will be helpfull for someone else to.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>BEWARE: This will write over all old passwords and replace it with the one you select.\u003C\u002Fstrong>\u003C\u002Fp>\n","This plugin puts a global password selected by you on all posts. Based on Matt Mullenwegs plugin \"Protect old posts\"",10,2641,1,"2.8",[108,75],"password-protection","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fpassword-protect-all-posts\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpassword-protect-all-posts.0.1.zip","2026-03-15T14:44:11.924Z",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":103,"downloaded":120,"rating":13,"num_ratings":13,"last_updated":17,"tested_up_to":121,"requires_at_least":122,"requires_php":17,"tags":123,"homepage":129,"download_link":130,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":131},"private-password-posts","Private Password Posts","1.5.0","Tomas","https:\u002F\u002Fprofiles.wordpress.org\u002Fzhuyi\u002F","\u003Cp>This plugin will hide private posts and password protected posts in front end. In back end, admin \u002F editor can still edit the post, also if a user know the url of\u003Cbr \u002F>\nprivate posts and password protected posts, they can open the posts too, of course, because these URLs is not listed in front end, so in general, nobody know\u003Cbr \u002F>\nthese  private posts and password protected posts, unless you sent URLs to your friends.\u003C\u002Fp>\n\u003Cp>Also support custom the wordpress default words of private post to your own words. You will find the “Private Post” menu in wordpress admin area, in “Private Post Settings” panel, you can change default words in ” Replace default words of private post” option panel.\u003C\u002Fp>\n\u003Cp>Why I develop this plugin:\u003Cbr \u002F>\nOn my site, I offten publish new version of my plugins, it means I need add new features in my plugin posts, before I change my posts, I’d like write a backup posts first, and for\u003Cbr \u002F>\navoid users \u002F google read these duplicate posts, I add them as private posts, but I found these private posts is showing my theme’s homepage, so I dig the wordpress wp_posts table and\u003Cbr \u002F>\ndevelop this plugin hide any private posts and password protected posts in front end, it works well.\u003C\u002Fp>\n\u003Ch4>My Other Plugins You Might Also Like:\u003C\u002Fh4>\n\u003Cli>\u003Ca href='http:\u002F\u002Ftooltips.org\u002Ffeatures-of-wordpress-tooltips-plugin\u002F' rel=\"nofollow ugc\">WordPress Tooltips Pro\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href='https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwordpress-tooltips\u002F' rel=\"ugc\">WordPress Tooltips Free\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href='https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffrequently-asked-questions\u002F' rel=\"ugc\">WordPress Frequently Asked Questions\u003C\u002Fa>\u003C\u002Fli>\n\u003Ch3>Download\u003C\u002Fh3>\n","Hide private posts and password protected posts in front end",1466,"6.0.11","3.2",[124,125,126,127,128],"access","password-post","password-protect-post","private-post","theme","https:\u002F\u002Ftooltips.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprivate-password-posts.zip","2026-03-15T10:48:56.248Z",{"attackSurface":133,"codeSignals":157,"taintFlows":174,"riskAssessment":230,"analyzedAt":238},{"hooks":134,"ajaxHandlers":153,"restRoutes":154,"shortcodes":155,"cronEvents":156,"entryPointCount":13,"unprotectedCount":13},[135,141,146,150],{"type":136,"name":137,"callback":138,"file":139,"line":140},"filter","the_content","protect_content","TIProtector.php",47,{"type":142,"name":143,"callback":144,"file":139,"line":145},"action","admin_menu","TIP_modify_post_page",66,{"type":142,"name":147,"callback":148,"file":139,"line":149},"save_post","update_TIP_post_options",103,{"type":142,"name":143,"callback":151,"file":139,"line":152},"TIP_modify_admin_menu",213,[],[],[],[],{"dangerousFunctions":158,"sqlUsage":159,"outputEscaping":161,"fileOperations":105,"externalRequests":13,"nonceChecks":105,"capabilityChecks":105,"bundledLibraries":173},[],{"prepared":105,"raw":13,"locations":160},[],{"escaped":13,"rawEcho":48,"locations":162},[163,167,169,171],{"file":164,"line":165,"context":166},"simple_html_dom.php",53,"raw output",{"file":164,"line":168,"context":166},57,{"file":139,"line":170,"context":166},111,{"file":139,"line":172,"context":166},171,[],[175,193,213],{"entryPoint":176,"graph":177,"unsanitizedCount":105,"severity":192},"print_TIP_post_options (TIProtector.php:106)",{"nodes":178,"edges":189},[179,184],{"id":180,"type":181,"label":182,"file":139,"line":183},"n0","source","$_REQUEST",108,{"id":185,"type":186,"label":187,"file":139,"line":170,"wp_function":188},"n1","sink","echo() [XSS]","echo",[190],{"from":180,"to":185,"sanitized":191},false,"medium",{"entryPoint":194,"graph":195,"unsanitizedCount":31,"severity":212},"print_TIP_option_page (TIProtector.php:125)",{"nodes":196,"edges":209},[197,200,203,207],{"id":180,"type":181,"label":198,"file":139,"line":199},"$_POST['text_protection']",131,{"id":185,"type":186,"label":201,"file":139,"line":199,"wp_function":202},"update_option() [Settings Manipulation]","update_option",{"id":204,"type":181,"label":205,"file":139,"line":206},"n2","$_POST['image_protection']",132,{"id":208,"type":186,"label":201,"file":139,"line":206,"wp_function":202},"n3",[210,211],{"from":180,"to":185,"sanitized":191},{"from":204,"to":208,"sanitized":191},"low",{"entryPoint":214,"graph":215,"unsanitizedCount":13,"severity":212},"\u003CTIProtector> (TIProtector.php:0)",{"nodes":216,"edges":225},[217,218,219,220,221,223],{"id":180,"type":181,"label":182,"file":139,"line":183},{"id":185,"type":186,"label":187,"file":139,"line":170,"wp_function":188},{"id":204,"type":181,"label":198,"file":139,"line":199},{"id":208,"type":186,"label":201,"file":139,"line":199,"wp_function":202},{"id":222,"type":181,"label":205,"file":139,"line":206},"n4",{"id":224,"type":186,"label":201,"file":139,"line":206,"wp_function":202},"n5",[226,228,229],{"from":180,"to":185,"sanitized":227},true,{"from":204,"to":208,"sanitized":227},{"from":222,"to":224,"sanitized":227},{"summary":231,"deductions":232},"The 'protect-content' plugin version 1.11 shows a generally positive security posture due to the absence of known vulnerabilities and a lack of identified critical or high-severity issues in the static analysis. The code demonstrates good practices by exclusively using prepared statements for its single SQL query and including both nonce and capability checks, suggesting an awareness of common WordPress security vulnerabilities. The limited attack surface, with no AJAX handlers, REST API routes, shortcodes, or cron events, further contributes to its secure design.\n\nHowever, a significant concern arises from the taint analysis, which revealed two flows with unsanitized paths. This indicates a potential for directory traversal or path manipulation vulnerabilities if these unsanitized paths are used in file operations or other sensitive contexts. Furthermore, the static analysis highlights that 100% of the four identified output operations are not properly escaped. This is a critical weakness that can lead to cross-site scripting (XSS) vulnerabilities, allowing attackers to inject malicious scripts into the WordPress site through user-supplied data that is displayed without proper sanitization.\n\nWhile the plugin has no recorded vulnerability history, suggesting a generally stable past, the presence of unsanitized paths and unescaped output in the current analysis are immediate risks that need addressing. The plugin's strengths lie in its minimal attack surface and use of prepared statements and authorization checks. The weaknesses lie in the potential for path traversal and the confirmed XSS risk due to improper output escaping. Addressing these specific issues should be the priority for improving the plugin's security.",[233,235],{"reason":234,"points":103},"Flows with unsanitized paths detected",{"reason":236,"points":237},"Output escaping issues (0% properly escaped)",12,"2026-03-16T22:50:41.126Z",{"wat":240,"direct":246},{"assetPaths":241,"generatorPatterns":243,"scriptPaths":244,"versionParams":245},[242],"\u002Fwp-content\u002Fplugins\u002Fprotect-content\u002Fprotector.gif",[],[],[],{"cssClasses":247,"htmlComments":248,"htmlAttributes":249,"restEndpoints":252,"jsGlobals":253,"shortcodeOutput":254},[],[],[250,251],"onselectstart","unselectable",[],[],[255,256,257,258,259,256,257,260,261,262,263,264,265,263],"\u003Cdiv onselectstart=\"return false;\" unselectable=\"on;\" style=\"-moz-user-select: none;\">","\u003Cdiv style=\"overflow: hidden; position: absolute;  width:","px; height:","px; z-index:0; background: url('","');\">\u003C\u002Fdiv>","px; z-index:1;\">","\u003Cimg title=\"Image Protector\" src=\"","\u002Fprotector.gif\" border=\"0\" alt=\"\" width=\"1\" height=\"1\" \u002F>","\u003C\u002Fdiv>","\u003Cdiv style=\"overflow: hidden; width:1px; height:","px; z-index: 1;\">"]