{"id":35424,"date":"2015-03-31T15:28:28","date_gmt":"2015-03-31T15:28:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/protect-uploads\/"},"modified":"2025-12-28T21:59:35","modified_gmt":"2025-12-28T21:59:35","slug":"protect-uploads","status":"publish","type":"plugin","link":"https:\/\/ceb.wordpress.org\/plugins\/protect-uploads\/","author":13747826,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.6.0","stable_tag":"0.6.0","tested":"6.9.4","requires":"3.0.1","requires_php":"7.0","requires_plugins":null,"header_name":"Protect Uploads","header_author":"alticreation","header_description":"","assets_banners_color":"a6d3f0","last_updated":"2025-12-28 21:59:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/support\/plugin\/protect-uploads\/","header_author_uri":"","rating":4.8,"author_block_rating":0,"active_installs":40000,"downloads":1381618,"num_ratings":13,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1":{"tag":"0.1","author":"alticreation","date":"2015-04-01 19:54:42"},"0.2":{"tag":"0.2","author":"alticreation","date":"2019-03-25 18:13:20"},"0.3":{"tag":"0.3","author":"alticreation","date":"2020-05-10 20:03:33"},"0.4":{"tag":"0.4","author":"alticreation","date":"2022-08-13 03:48:11"},"0.5.1":{"tag":"0.5.1","author":"alticreation","date":"2022-09-04 14:04:40"},"0.5.2":{"tag":"0.5.2","author":"alticreation","date":"2022-09-04 15:15:24"},"0.6.0":{"tag":"0.6.0","author":"moeloubani1","date":"2025-12-28 21:59:35"}},"upgrade_notice":{"0.6.0":"<p>Major update with new security features: watermarking, right-click protection, and password protection for individual media files.<\/p>"},"ratings":{"1":0,"2":0,"3":1,"4":0,"5":12},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2779778,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2779778,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2779778,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2779778,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1","0.2","0.3","0.4","0.5.1","0.5.2","0.6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":2779778,"resolution":"1","location":"assets","locale":""}},"screenshots":{"1":"Administration Page for the plugin.","2":"Password protection settings for individual media files.","3":"Watermarking options in the settings page."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[24604,1178,600,85,3241],"plugin_category":[54],"plugin_contributors":[79934],"plugin_business_model":[],"class_list":["post-35424","plugin","type-plugin","status-publish","hentry","plugin_tags-password-protection","plugin_tags-protection","plugin_tags-security","plugin_tags-uploads","plugin_tags-watermark","plugin_category-security-and-spam-protection","plugin_contributors-alticreation","plugin_committers-alticreation","plugin_committers-moeloubani1","plugin_support_reps-moeloubani1"],"banners":{"banner":"https:\/\/ps.w.org\/protect-uploads\/assets\/banner-772x250.png?rev=2779778","banner_2x":"https:\/\/ps.w.org\/protect-uploads\/assets\/banner-1544x500.png?rev=2779778","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/protect-uploads\/assets\/icon-128x128.png?rev=2779778","icon_2x":"https:\/\/ps.w.org\/protect-uploads\/assets\/icon-256x256.png?rev=2779778","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/protect-uploads\/assets\/screenshot-1.png?rev=2779778","caption":"Administration Page for the plugin."}],"raw_content":"<!--section=description-->\n<p>The uploads directory is where the files of the WordPress library are stored. Unfortunelty, this directory is not protected. A person who wants to see all your library could list it instantly going to : http:\/\/yourwebsite\/wp-content\/uploads . This plugin will hide the content by adding an index.php file on the root of your uploads directory or by setting an htaccess which will return a 403 error (Forbidden Access).<\/p>\n\n<ul>\n<li>Depending on your server setting, the htaccess option could be disabled.<\/li>\n<\/ul>\n\n<p><strong>New Features in Version 0.6.0:<\/strong><\/p>\n\n<ul>\n<li><strong>Image Watermarking<\/strong>: Add text watermarks to your uploaded images with customizable position, opacity, and font size.<\/li>\n<li><strong>Right-Click Protection<\/strong>: Prevent users from right-clicking to download or save your images.<\/li>\n<li><strong>Password Protection<\/strong>: Secure individual media files with passwords. Multiple passwords can be set for each file with custom labels.<\/li>\n<li><strong>Access Logging<\/strong>: Track who accesses your password-protected files with detailed logs including IP address and user agent.<\/li>\n<\/ul>\n\n<p>Available languages:<\/p>\n\n<ul>\n<li>English<\/li>\n<li>Fran\u00e7ais<\/li>\n<li>Espa\u00f1ol<\/li>\n<li>Italian (thanks to Marko97)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>protect-uploads<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Configure protection options in Settings \u2192 Media \u2192 Protect Uploads<\/li>\n<\/ol>\n\n<p>Note: GD library is needed for watermarking functionality and being able to create a .htaccess file in uploads directory.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20add%20a%20password%20to%20a%20media%20file%3F'><h3>How do I add a password to a media file?<\/h3><\/dt>\n<dd><ol>\n<li>Enable password protection in Settings \u2192 Media \u2192 Protect Uploads<\/li>\n<li>Edit any media file in your Media Library<\/li>\n<li>Scroll down to the \"Password Protection\" section<\/li>\n<li>Add one or more passwords with descriptive labels<\/li>\n<\/ol><\/dd>\n<dt id='how%20does%20watermarking%20work%3F'><h3>How does watermarking work?<\/h3><\/dt>\n<dd><p>When enabled, watermarking automatically adds text to images when they are uploaded. You can customize:\n- The watermark text (defaults to your site name)\n- Position (top-left, top-right, bottom-left, bottom-right, center)\n- Opacity (0-100%)\n- Font size (small, medium, large)<\/p><\/dd>\n<dt id='can%20i%20password%20protect%20only%20certain%20file%20types%3F'><h3>Can I password protect only certain file types?<\/h3><\/dt>\n<dd><p>Yes, password protection works for all media file types including PDFs, images, videos, and documents.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Added image watermarking with customizable text, position, opacity, and font size<\/li>\n<li>Added right-click protection to prevent image downloads<\/li>\n<li>Added password protection for individual media files<\/li>\n<li>Added access logging for password-protected files<\/li>\n<li>Added multiple password support with custom labels<\/li>\n<li>Added security enhancements throughout the plugin<\/li>\n<li>Improved file serving with better security checks<\/li>\n<li>Added font size control for watermarks<\/li>\n<li>Enhanced error handling and logging<\/li>\n<\/ul>\n\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>Removed unused css<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>Fix potential security issues.<\/li>\n<li>Remove recursive loop that creates indexes.<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Simplify UI admin.<\/li>\n<li>check presence of index.html.<\/li>\n<li>Remove option value managing current protection status.<\/li>\n<li>Reorganizing code and making it more modular and simple.<\/li>\n<li>Remove useless pieces.<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>Add security check to form in admin page.<\/li>\n<li>Add sidebar for admin page<\/li>\n<li>Add Italian translation (thanks to Marko97).<\/li>\n<li>Try to fix the wrong message saying that Protection is disabled eventhough it is actually working.<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Protect your uploads directory. Prevent browsing, add watermarks, disable right-click, and password-protect files. For more information, visit protect &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/35424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=35424"}],"author":[{"embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/alticreation"}],"wp:attachment":[{"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=35424"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=35424"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=35424"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=35424"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=35424"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ceb.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=35424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}