diff --git a/wp-content/plugins/kfzrhzd/LICENSE.txt b/wp-content/plugins/kfzrhzd/LICENSE.txt new file mode 100644 index 00000000..0a98ec0f --- /dev/null +++ b/wp-content/plugins/kfzrhzd/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or 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 + (at your option) any later version. + + This program 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 program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. \ No newline at end of file diff --git a/wp-content/plugins/kfzrhzd/admin/assets/css/protect-uploads-admin.css b/wp-content/plugins/kfzrhzd/admin/assets/css/protect-uploads-admin.css new file mode 100644 index 00000000..ed1ad570 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/admin/assets/css/protect-uploads-admin.css @@ -0,0 +1,23 @@ +.protect-uploads-error { + border: 2px solid #dc3232; + display: inline-block; + padding: 10px; +} +.protect-uploads-success { + border: 1px solid #46b450; +} + +/* container left and right */ +.protect-uploads .protect-uploads-main-container { + float: left; + width: 66%; +} +.protect-uploads .protect-uploads-sidebar { + float: left; + width: 31%; + margin-left: 2%; +} + +.protect-uploads-disabled { + opacity: 0.75 !important; +} \ No newline at end of file diff --git a/wp-content/plugins/kfzrhzd/admin/class-protect-uploads-admin.php b/wp-content/plugins/kfzrhzd/admin/class-protect-uploads-admin.php new file mode 100644 index 00000000..3a722e6e --- /dev/null +++ b/wp-content/plugins/kfzrhzd/admin/class-protect-uploads-admin.php @@ -0,0 +1,316 @@ +plugin_name = $plugin_name; + $this->version = $version; + } + + public function get_plugin_name() + { + return $this->plugin_name; + } + + public function add_submenu_page() + { + add_submenu_page('upload.php', $this->plugin_name, 'Protect Uploads ', 'manage_options', $this->plugin_name . '-settings-page', array($this, 'render_settings_page')); + } + + public function render_settings_page() + { + require plugin_dir_path(__FILE__) . 'views/' . $this->plugin_name . '-admin-settings-page.php'; + } + + public function enqueue_styles() + { + wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'assets/css/protect-uploads-admin.css', array(), $this->version, 'all'); + } + + public function add_settings_link($links) + { + $settings_link = '' . __('Settings') . ''; + array_unshift($links, $settings_link); + return $links; + } + + public function get_uploads_dir() + { + $uploads_dir = wp_upload_dir(); + return $uploads_dir['basedir']; + } + + public function get_uploads_url() + { + $uploads_dir = wp_upload_dir(); + return $uploads_dir['baseurl']; + } + + public function get_uploads_subdirectories() + { + + $directories = scandir(self::get_uploads_dir()); + $subs = array(self::get_uploads_dir()); + + foreach ($directories as $directory) { + + if (is_dir(self::get_uploads_dir() . '/' . $directory) && !preg_match('/^\.*$/', $directory)) { + $subs[] = self::get_uploads_dir() . '/' . $directory; + $subDirectories = scandir(self::get_uploads_dir() . '/' . $directory); + foreach ($subDirectories as $subDirectory) { + if (is_dir(self::get_uploads_dir() . '/' . $directory . '/' . $subDirectory) && !preg_match('/^\.*$/', $subDirectory)) $subs[] = self::get_uploads_dir() . '/' . $directory . '/' . $subDirectory; + } + } + } + return $subs; + } + + public function save_form($form) + { + if ($form['protection'] == 'index_php') { + $this->create_index(); + } + if ($form['protection'] == 'htaccess') { + $this->create_htaccess(); + } + if ($form['protection'] == 'remove') { + $this->remove_index(); + $this->remove_htaccess(); + } + } + + // used to check if the current htaccess has been generated by the plugin + public function get_htaccess_identifier() + { + return "[plugin_name=" . $this->plugin_name . "]"; + } + + public function create_index() + { + // check if index php does not exists + if (self::check_protective_file('index.php') === false) { + + $indexContent = "get_plugin_name() . " Plugin\n"; + $htaccessContent .= "\tOptions -Indexes\n"; + $htaccessContent .= "# [date={$date}] [php={$phpv}] " . self::get_htaccess_identifier() . " [version={$this->version}]\n"; + $htaccessContent .= "# END " . $this->get_plugin_name() . " Plugin\n"; + + // if htaccess does NOT exist yet + if (self::check_protective_file('.htaccess') === false) { + // try to create and save the new htaccess file + if (!file_put_contents(self::get_uploads_dir() . '/' . '.htaccess', $htaccessContent)) { + self::register_message('Impossible to create or modified the htaccess file.', 'error'); + } else { + self::register_message('The htaccess file has been created.'); + } + } + else { + // if content added to existing htaccess + if (file_put_contents(self::get_uploads_dir() . '/.htaccess', $htaccessContent, FILE_APPEND | LOCK_EX)) { + self::register_message('The htaccess file has been updated.'); + } else { + self::register_message('The existing htaccess file couldn\'t be updated. Please check file permissions.', 'error'); + } + } + } + + public function remove_index() + { + $i = 0; + foreach (self::get_uploads_subdirectories() as $subDirectory) { + if (file_exists($subDirectory . '/index.php')) { + unlink($subDirectory . '/index.php'); + $i++; + } + } + if ($i == count(self::get_uploads_subdirectories())) { + self::register_message('The index.php file(s) have(has) been deleted.'); + } + } + + public function remove_htaccess() + { + if (file_exists(self::get_uploads_dir() . '/.htaccess')) { + + $htaccessContent = file_get_contents(self::get_uploads_dir() . '/.htaccess'); + $htaccessContent = preg_replace('/(# BEGIN protect-uploads Plugin)(.*?)(# END protect-uploads Plugin)/is', '', $htaccessContent); + file_put_contents(self::get_uploads_dir() . '/.htaccess', $htaccessContent, LOCK_EX); + + // if htaccess is empty, we remove it. + if (strlen(preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "", file_get_contents(self::get_uploads_dir() . '/.htaccess'))) == 0) { + unlink(self::get_uploads_dir() . '/.htaccess'); + } + + + // + self::register_message('The htaccess file has been updated.'); + } + } + + public function get_protective_files_array() + { + $uploads_files = ['index.php', 'index.html', '.htaccess']; + $response = []; + foreach ($uploads_files as $file) { + if (file_exists(self::get_uploads_dir() . '/' . $file)) { + $response[] = $file; + } + } + return $response; + } + + public function check_protective_file($file) + { + if (in_array($file, self::get_protective_files_array())) { + return true; + } else { + return false; + } + } + + public function get_uploads_root_response_code() + { + $uploads_headers = get_headers(self::get_uploads_url() . '/'); + $response = null; + if (is_array($uploads_headers)) { + if (preg_match('/200/', $uploads_headers[0])) $response = 200; + if (preg_match('/403/', $uploads_headers[0])) $response = 403; + } + return $response; + } + + public function get_htaccess_content() + { + return file_get_contents(self::get_uploads_dir() . '/.htaccess'); + } + + public function check_htaccess_is_self_generated() + { + if (self::check_protective_file('.htaccess') && preg_match('/' . self::get_htaccess_identifier() . '/', self::get_htaccess_content())) { + return true; + } else { + return false; + } + } + + // heart? <3 + public function check_uploads_is_protected() + { + foreach (self::get_protective_files_array() as $file) { + if ($file === 'index.html') { + return true; + break; + } + if ($file === 'index.php') { + return true; + break; + } + if ($file === '.htaccess' && self::get_uploads_root_response_code() === 200) { + return false; + break; + } + } + if (self::get_uploads_root_response_code() === 403) { + return true; + } + else { + return false; + } + } + + public function check_protective_file_removable() { + if( self::check_protective_file('index.html') ) { + return false; + } + elseif( self::check_protective_file('.htaccess') === false && self::get_uploads_root_response_code() === 403 ) { + return false; + } + else { + return true; + } + } + + public function get_uploads_protection_message_array() + { + $response = []; + foreach (self::get_protective_files_array() as $file) { + if ($file === '.htaccess' && self::get_uploads_root_response_code() === 403) { + $response[] = ' ' . __('.htaccess file is present and access to uploads directory returns 403 code.', $this->plugin_name); + } + if ($file === 'index.php') { + $response[] = ' ' . __('index.php file is present.', $this->plugin_name); + } + if ($file === 'index.html') { + $response[] = ' ' . __('index.html file is present.', $this->plugin_name); + } + } + if (self::check_protective_file('.htaccess') === true && self::get_uploads_root_response_code() === 200) { + $response[] = ' ' . __('.htaccess file is present but not protecting uploads directory.', $this->plugin_name); + } + if (self::check_protective_file('.htaccess') === false && self::get_uploads_root_response_code() === 403) { + $response[] = ' ' . __('Access to uploads directory is protected (403) with a global .htaccess or another global declaration.', $this->plugin_name); + } + return $response; + } + + public function check_apache() + { + + if (!function_exists('apache_get_modules')) { + self::register_message('The Protect Uploads plugin cannot work without Apache. Yourself or your web host has to activate this module.'); + } + } + + + public function register_message($message, $type = 'updated', $id = 0) + { + $this->messages['apache'][] = array( + 'message' => __($message, $this->plugin_name), + 'type' => $type, + 'id' => $id + ); + } + + public function display_messages() + { + + foreach ($this->messages as $name => $messages) { + foreach ($messages as $message) { + return '

' . $message['message'] . '

'; + } + } + } +} diff --git a/wp-content/plugins/kfzrhzd/admin/index.php b/wp-content/plugins/kfzrhzd/admin/index.php new file mode 100644 index 00000000..e71af0ef --- /dev/null +++ b/wp-content/plugins/kfzrhzd/admin/index.php @@ -0,0 +1 @@ + +'; + ?> + +
+
+
Like this plugin?
+

Rate it to show your support!

+

Donate to encourage me updating this plugin!

+
+
+
Discover more useful plugins
+ + + + + + +
+
+
Developed by
+ alticreation +
+
diff --git a/wp-content/plugins/kfzrhzd/admin/views/protect-uploads-admin-settings-page.php b/wp-content/plugins/kfzrhzd/admin/views/protect-uploads-admin-settings-page.php new file mode 100644 index 00000000..afa5fc54 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/admin/views/protect-uploads-admin-settings-page.php @@ -0,0 +1,126 @@ +
+ plugin_name, $this->version); + if (isset($_POST['submit']) && isset($_POST['protection']) && check_admin_referer('submit_form', 'protect-uploads' . '_nonce')) { + $plugin->save_form($_POST); + } + echo $plugin->display_messages(); + ?> +

Protect Uploads

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+

+ + check_uploads_is_protected() === true) { ?> + plugin_name); ?> + + plugin_name); ?> + + +

+

+ get_uploads_protection_message_array(); + foreach ($file_messages as $file_message) { + ?> +
+ +

+
+
+ + +
+ + plugin_name); ?> + + check_uploads_is_protected() === false) { ?> + +
+ +
+ + + check_protective_file_removable() && $this->check_uploads_is_protected() ) { ?> +
+ + check_protective_file('index.html') === true) { ?> +

+ plugin_name) ?> +

+ +
+ +
+ + +

plugin_name); ?> plugin_name); ?> plugin_name); ?>.

+
+ + +

support page.', $this->plugin_name); ?>

+

Watermark Plugin.', $this->plugin_name); ?>

+

plugin_name); ?>

+
+ + +
+ +
+ +
+ + + +
\ No newline at end of file diff --git a/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-activator.php b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-activator.php new file mode 100644 index 00000000..a83e1408 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-activator.php @@ -0,0 +1,8 @@ +plugin_name, $this->version); + $plugin->remove_index(); + $plugin->remove_htaccess(); + delete_option( $this->get_plugin_name().'-protection' ); + + } + +} \ No newline at end of file diff --git a/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-i18n.php b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-i18n.php new file mode 100644 index 00000000..bd5558d6 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-i18n.php @@ -0,0 +1,31 @@ +domain, + false, + dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' + ); + + } + + /** + * Set the domain equal to that of the specified domain. + * @param string $domain The domain that represents the locale of this plugin. + */ + public function set_domain( $domain ) { + $this->domain = $domain; + } + +} diff --git a/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-loader.php b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-loader.php new file mode 100644 index 00000000..f827734c --- /dev/null +++ b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads-loader.php @@ -0,0 +1,99 @@ +actions = array(); + $this->filters = array(); + + } + + /** + * Add a new action to the collection to be registered with WordPress. + * @param string $hook The name of the WordPress action that is being registered. + * @param object $component A reference to the instance of the object on which the action is defined. + * @param string $callback The name of the function definition on the $component. + * @param int Optional $priority The priority at which the function should be fired. + * @param int Optional $accepted_args The number of arguments that should be passed to the $callback. + */ + public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * Add a new filter to the collection to be registered with WordPress. + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int Optional $priority The priority at which the function should be fired. + * @param int Optional $accepted_args The number of arguments that should be passed to the $callback. + */ + public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * A utility function that is used to register the actions and hooks into a single + * collection. + * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int Optional $priority The priority at which the function should be fired. + * @param int Optional $accepted_args The number of arguments that should be passed to the $callback. + * @return type The collection of actions and filters registered with WordPress. + */ + private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) { + + $hooks[] = array( + 'hook' => $hook, + 'component' => $component, + 'callback' => $callback, + 'priority' => $priority, + 'accepted_args' => $accepted_args + ); + + return $hooks; + + } + + /** + * Register the filters and actions with WordPress. + */ + public function run() { + + foreach ( $this->filters as $hook ) { + add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + foreach ( $this->actions as $hook ) { + add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + } + +} diff --git a/wp-content/plugins/kfzrhzd/includes/class-protect-uploads.php b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads.php new file mode 100644 index 00000000..f2d88734 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/includes/class-protect-uploads.php @@ -0,0 +1,73 @@ +version = '0.3'; + $this->plugin_name = 'protect-uploads'; + $this->load_dependencies(); + $this->set_locale(); + $this->define_admin_hooks(); + } + + private function load_dependencies() + { + + require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-protect-uploads-loader.php'; + require_once plugin_dir_path(dirname(__FILE__)) . 'includes/class-protect-uploads-i18n.php'; + require_once plugin_dir_path(dirname(__FILE__)) . 'admin/class-protect-uploads-admin.php'; + + $this->loader = new Alti_ProtectUploads_Loader(); + } + + /** + * set locale for translation ends. + */ + private function set_locale() + { + + $plugin_i18n = new Alti_ProtectUploads_i18n(); + $plugin_i18n->set_domain($this->get_plugin_name()); + + $this->loader->add_action('plugins_loaded', $plugin_i18n, 'load_plugin_textdomain'); + } + + /** + * action and filter for admin side + */ + private function define_admin_hooks() + { + + $plugin_admin = new Alti_ProtectUploads_Admin($this->get_plugin_name(), $this->get_version()); + + $this->loader->add_action('admin_menu', $plugin_admin, 'add_submenu_page'); + $this->loader->add_filter('plugin_action_links_' . $this->get_plugin_name() . '/' . $this->get_plugin_name() . '.php', $plugin_admin, 'add_settings_link'); + $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_styles'); + } + + public function run() + { + $this->loader->run(); + } + + public function get_plugin_name() + { + return $this->plugin_name; + } + + public function get_loader() + { + return $this->loader; + } + + public function get_version() + { + return $this->version; + } +} diff --git a/wp-content/plugins/kfzrhzd/includes/index.php b/wp-content/plugins/kfzrhzd/includes/index.php new file mode 100644 index 00000000..e71af0ef --- /dev/null +++ b/wp-content/plugins/kfzrhzd/includes/index.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/wp-content/plugins/kfzrhzd/languages/index.php b/wp-content/plugins/kfzrhzd/languages/index.php new file mode 100644 index 00000000..e71af0ef --- /dev/null +++ b/wp-content/plugins/kfzrhzd/languages/index.php @@ -0,0 +1 @@ +\n" +"Language-Team: alticreation \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.11\n" +"X-Poedit-Basepath: ../\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-KeywordsList: _;__;_e\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin/class-protect-uploads-admin.php:56 +msgid "Settings" +msgstr "Ajustes" + +#: admin/class-protect-uploads-admin.php:122 +msgid "Impossible to create or modified the index.php file in " +msgstr "Imposible de crear o modificar el archivo index.php en" + +#: admin/class-protect-uploads-admin.php:136 +msgid "" +"The index.php file has been created in main folder and subfolders (two " +"levels max)." +msgstr "" +"El archivo index.php se ha creado en la carpeta principal de uploads y " +"subcarpetas (dos niveles max)." + +#: admin/class-protect-uploads-admin.php:170 +msgid "Impossible to create or modified the htaccess file." +msgstr "Imposible de crear o modificar el archivo .htaccess." + +#: admin/class-protect-uploads-admin.php:179 +msgid "The htaccess file has been created." +msgstr "El archivo .htaccess se ha creado." + +#: admin/class-protect-uploads-admin.php:191 +msgid "Existing htaccess has been updated." +msgstr "Htaccess existente se ha actualizado." + +#: admin/class-protect-uploads-admin.php:221 +msgid "The index.php file(s) have(has) been deleted." +msgstr "El(los) archivo(s) index.php ha(n) sido eliminado(s)." + +#: admin/class-protect-uploads-admin.php:250 +msgid "The htaccess file has been updated." +msgstr "El archivo .htaccess se ha actualizado." + +#: admin/class-protect-uploads-admin.php:294 +msgid "" +"The Protect Uploads plugin cannot work without Apache. Yourself or your web " +"host has to activate this module." +msgstr "" +"El plugin Protect Uploads no puede funcionar sin Apache. Usted o su " +"proveedor de alojamiento web tiene que activar este módulo." + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Error code" +msgstr "Código de error" + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Go to Protect Uploads documentation" +msgstr "Ir a la documentación de Protect Uploads" + +#: admin/views/protect-uploads-admin-settings-page.php:9 +msgid "by" +msgstr "por" + +#: admin/views/protect-uploads-admin-settings-page.php:10 +msgid "" +"Prevent users to browse your uploads directory. You'll protect your uploads " +"directory to be accessed and content stolen too easily in one batch." +msgstr "" +"Evita que los usuarios navigen directamente por el directorio de archivos. " +"Va a proteger su directorio de archivos y contenido no sera robado con " +"demasiada facilidad en un solo lote." + +#: admin/views/protect-uploads-admin-settings-page.php:17 +msgid "Status" +msgstr "Estado" + +#: admin/views/protect-uploads-admin-settings-page.php:22 +msgid "Uploads directory is protected." +msgstr "Directorio Uploads está protegida." + +#: admin/views/protect-uploads-admin-settings-page.php:24 +msgid "" +"Your uploads directory is already protected by an htaccess " +"file or an Apache setting set for the whole website. You don't need extra " +"protection.
The «remove option» behind will have no effect on the current " +"protection." +msgstr "" +"Su directorio de archivos está ya protegido por un " +"archivo .htaccess o una configuración de Apache puesta para todo el sitio. " +"Usted no necesita protección adicional.
El «opción quitar» aqui abajo " +"no tendrá ningún efecto sobre la protección actual." + +#: admin/views/protect-uploads-admin-settings-page.php:27 +msgid "Uploads directory is not protected!" +msgstr "Directorio de Uploads no está protegido!" + +#: admin/views/protect-uploads-admin-settings-page.php:34 +#: admin/views/protect-uploads-admin-settings-page.php:39 +msgid "Protection" +msgstr "Protección" + +#: admin/views/protect-uploads-admin-settings-page.php:44 +msgid "add index file" +msgstr "añadir archivo index" + +#: admin/views/protect-uploads-admin-settings-page.php:45 +msgid "" +"This will create an index.php file on the root of your uploads directory. " +"This simple trick will hide the content of your whole uploads directory." +msgstr "" +"Esto creará un archivo index.php en la raíz del directorio de los archivos " +"subidos. Este sencillo truco ocultará el contenido de todo su directorio " +"uploads." + +#: admin/views/protect-uploads-admin-settings-page.php:50 +msgid "prevent directory listing with htaccess" +msgstr "previene la navegacion en el directorio de Uploads con htaccess" + +#: admin/views/protect-uploads-admin-settings-page.php:51 +msgid "" +"Through the htaccess file, it will prevent people to browse your uploads " +"directory and return a 403 code (Forbidden Access)." +msgstr "" +"Mediante el archivo .htaccess, se evitará que la gente navega en el " +"directorio de archivos y devuelve un código 403 (Acceso prohibido)." + +#: admin/views/protect-uploads-admin-settings-page.php:56 +msgid "remove protection or disabled protection" +msgstr "eliminar la protección o desactivar la protección" + +#: admin/views/protect-uploads-admin-settings-page.php:57 +msgid "Your uploads directory is not protected." +msgstr "El directorio Uploads no está protegido." + +#: admin/views/protect-uploads-admin-settings-page.php:65 +msgid "Check" +msgstr "Comprobar" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "Visit your" +msgstr "Visite a su" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "uploads directory" +msgstr "directorio de uploads" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "to check the current protection" +msgstr "para comprobar la protección actual" + +#: admin/views/protect-uploads-admin-settings-page.php:73 +msgid "Support" +msgstr "Ayuda" + +#: admin/views/protect-uploads-admin-settings-page.php:76 +msgid "" +"Protect Uploads Plugin support page." +msgstr "" +"Ver la pagina de ayuda del plugin." + +#: admin/views/protect-uploads-admin-settings-page.php:77 +msgid "" +"This plugin is compatible with the Watermark Plugin." +msgstr "" +"Este plugin es compatible con el Plugin Marca de agua ." + +#: admin/views/protect-uploads-admin-settings-page.php:78 +msgid "" +"To do so, you have to: 1. Install the Watermark Plugin 2. Then choose your " +"settings in this page and Update." +msgstr "" +"Por eso, usted tiene que: 1. Instalar el Watermark Plugin 2. Seleccione la " +"configuración en esta página y actualizar." + +#: admin/views/protect-uploads-admin-settings-page.php:85 +msgid "Update" +msgstr "Actualizar" + +#: admin/views/protect-uploads-admin-settings-page.php:94 +msgid "Protect Uploads plugin is developped by" +msgstr "El Plugin Protect Uploads está desarrollado por" diff --git a/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.mo b/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.mo new file mode 100644 index 00000000..2b70100b Binary files /dev/null and b/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.mo differ diff --git a/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.po b/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.po new file mode 100644 index 00000000..31eee1f7 --- /dev/null +++ b/wp-content/plugins/kfzrhzd/languages/protect-uploads-fr_FR.po @@ -0,0 +1,198 @@ +msgid "" +msgstr "" +"Project-Id-Version: alti-protect-uplodas\n" +"POT-Creation-Date: 2015-04-01 15:34-0500\n" +"PO-Revision-Date: 2015-04-01 15:36-0500\n" +"Last-Translator: alticreation \n" +"Language-Team: alticreation \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.11\n" +"X-Poedit-Basepath: ../\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Poedit-KeywordsList: __;_e;_\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin/class-protect-uploads-admin.php:56 +msgid "Settings" +msgstr "Réglages" + +#: admin/class-protect-uploads-admin.php:122 +msgid "Impossible to create or modified the index.php file in " +msgstr "Il est impossible de créer ou modifier le fichier index.php dans " + +#: admin/class-protect-uploads-admin.php:136 +msgid "" +"The index.php file has been created in main folder and subfolders (two " +"levels max)." +msgstr "" +"Le fichier index.php a été créé dans le dossier principal des uploads ainsi " +"que dans les sous-dossiers (jusqu'à deux niveaux)." + +#: admin/class-protect-uploads-admin.php:170 +msgid "Impossible to create or modified the htaccess file." +msgstr "Impossible de créer ou modifier le fichier htaccess." + +#: admin/class-protect-uploads-admin.php:179 +msgid "The htaccess file has been created." +msgstr "Le fichier htaccess a été créé." + +#: admin/class-protect-uploads-admin.php:191 +msgid "Existing htaccess has been updated." +msgstr "Le fichier htaccess préexistant a été mis à jour." + +#: admin/class-protect-uploads-admin.php:221 +msgid "The index.php file(s) have(has) been deleted." +msgstr "Le(s) fichier(s) index.php a (ont) été(s) supprimé(s)." + +#: admin/class-protect-uploads-admin.php:250 +msgid "The htaccess file has been updated." +msgstr "Le fichier htaccess a été mis à jour." + +#: admin/class-protect-uploads-admin.php:294 +msgid "" +"The Protect Uploads plugin cannot work without Apache. Yourself or your web " +"host has to activate this module." +msgstr "" +"L'extension «Protect Uploads» ne peut pas fonctionner sans APache. Vous-même " +"ou votre hébergeur web doit active ce module." + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Error code" +msgstr "Code erreur" + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Go to Protect Uploads documentation" +msgstr "Aller à la documentation de Protect Uploads" + +#: admin/views/protect-uploads-admin-settings-page.php:9 +msgid "by" +msgstr "par" + +#: admin/views/protect-uploads-admin-settings-page.php:10 +msgid "" +"Prevent users to browse your uploads directory. You'll protect your uploads " +"directory to be accessed and content stolen too easily in one batch." +msgstr "" +"Empêche les utilisateurs de lister le contenu de votre repertoire uploads. " +"Vous protégerez votre répertoire uploads. Il ne sera pas accessible et le " +"contenu ne pourra pas être voler." + +#: admin/views/protect-uploads-admin-settings-page.php:17 +msgid "Status" +msgstr "Statut" + +#: admin/views/protect-uploads-admin-settings-page.php:22 +msgid "Uploads directory is protected." +msgstr "Le repertoire Uploads est protégé." + +#: admin/views/protect-uploads-admin-settings-page.php:24 +msgid "" +"Your uploads directory is already protected by an htaccess " +"file or an Apache setting set for the whole website. You don't need extra " +"protection.
The «remove option» behind will have no effect on the current " +"protection." +msgstr "" +"Votre répertoir Uploads est déjà protégé par un fichier htaccess ou par un " +"réglage Apache défini pour l'ensemble du site. Vous n'avez pas besoin de " +"protection supplémentaire.
L'option «supprimer» ci-dessous n'aura pas " +"d'effet sur la protection actuelle." + +#: admin/views/protect-uploads-admin-settings-page.php:27 +msgid "Uploads directory is not protected!" +msgstr "Le repertoire Uploads n'est pas protégé !" + +#: admin/views/protect-uploads-admin-settings-page.php:34 +#: admin/views/protect-uploads-admin-settings-page.php:39 +msgid "Protection" +msgstr "Protection" + +#: admin/views/protect-uploads-admin-settings-page.php:44 +msgid "add index file" +msgstr "ajouter un fichier index" + +#: admin/views/protect-uploads-admin-settings-page.php:45 +msgid "" +"This will create an index.php file on the root of your uploads directory. " +"This simple trick will hide the content of your whole uploads directory." +msgstr "" +"Ceci créera un fichier index.php à la racine du repertoire Uploads. Cette " +"simple manipulation cachera le contenu de tout votre repertoire Uploads." + +#: admin/views/protect-uploads-admin-settings-page.php:50 +msgid "prevent directory listing with htaccess" +msgstr "Empêcher le listage du repertoire Uploads avec htaccess" + +#: admin/views/protect-uploads-admin-settings-page.php:51 +msgid "" +"Through the htaccess file, it will prevent people to browse your uploads " +"directory and return a 403 code (Forbidden Access)." +msgstr "" +"Via le fichier htaccess, les utilisateurs ne pourront pas naviguer dans les " +"repertoires Uploads librement et ceci retournera un code 403 (Accès " +"Interdit)." + +#: admin/views/protect-uploads-admin-settings-page.php:56 +msgid "remove protection or disabled protection" +msgstr "enlever la protection ou protection désactivée" + +#: admin/views/protect-uploads-admin-settings-page.php:57 +msgid "Your uploads directory is not protected." +msgstr "Votre repertoire Uploads n'est pas protégé." + +#: admin/views/protect-uploads-admin-settings-page.php:65 +msgid "Check" +msgstr "Contrôle" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "Visit your" +msgstr "Visitez votre" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "uploads directory" +msgstr "repertoire Uploads" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "to check the current protection" +msgstr "pour verifier la protection actuelle." + +#: admin/views/protect-uploads-admin-settings-page.php:73 +msgid "Support" +msgstr "Support" + +#: admin/views/protect-uploads-admin-settings-page.php:76 +msgid "" +"Protect Uploads Plugin support page." +msgstr "" +"Page de support de l'extension Protect Uploads." + +#: admin/views/protect-uploads-admin-settings-page.php:77 +msgid "" +"This plugin is compatible with the Watermark Plugin." +msgstr "" +"Cette extension est compatible avec l'extension Watermark." + +#: admin/views/protect-uploads-admin-settings-page.php:78 +msgid "" +"To do so, you have to: 1. Install the Watermark Plugin 2. Then choose your " +"settings in this page and Update." +msgstr "" +"Pour faire cela, vous devez : 1. Installer l'extension Watermark 2. Ensuite " +"choisir vos réglages dans cette page puis Mettre à jour." + +#: admin/views/protect-uploads-admin-settings-page.php:85 +msgid "Update" +msgstr "Mettre à jour" + +#: admin/views/protect-uploads-admin-settings-page.php:94 +msgid "Protect Uploads plugin is developped by" +msgstr "L'extension Protect Uploads est développé par" diff --git a/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.mo b/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.mo new file mode 100644 index 00000000..d6733970 Binary files /dev/null and b/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.mo differ diff --git a/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.po b/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.po new file mode 100644 index 00000000..da74a5cd --- /dev/null +++ b/wp-content/plugins/kfzrhzd/languages/protect-uploads-it_IT.po @@ -0,0 +1,197 @@ +msgid "" +msgstr "" +"Project-Id-Version: protect-uploads\n" +"POT-Creation-Date: 2015-04-01 15:38-0500\n" +"PO-Revision-Date: 2017-04-23 09:13+0100\n" +"Last-Translator: alticreation \n" +"Language-Team: Marko97 \n" +"Language: it_IT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.7.7\n" +"X-Poedit-Basepath: ../\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-KeywordsList: _;__;_e\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: admin/class-protect-uploads-admin.php:56 +msgid "Settings" +msgstr "Impostazioni" + +#: admin/class-protect-uploads-admin.php:122 +msgid "Impossible to create or modified the index.php file in " +msgstr "Impossibile creare o modificare il file index.php in" + +#: admin/class-protect-uploads-admin.php:136 +msgid "" +"The index.php file has been created in main folder and subfolders (two " +"levels max)." +msgstr "" +"Il file index.php è stato creato nella cartella principale e nelle sotto " +"cartelle (massimo 2 livelli)" + +#: admin/class-protect-uploads-admin.php:170 +msgid "Impossible to create or modified the htaccess file." +msgstr "Impossibile creare o modificare il file .htaccess" + +#: admin/class-protect-uploads-admin.php:179 +msgid "The htaccess file has been created." +msgstr "Il file .htaccess è stato creato" + +#: admin/class-protect-uploads-admin.php:191 +msgid "Existing htaccess has been updated." +msgstr "Il file .htaccess è stato aggiornato" + +#: admin/class-protect-uploads-admin.php:221 +msgid "The index.php file(s) have(has) been deleted." +msgstr "" +"Il file index.php è stato eliminato / I file index.php sono stati eliminati" + +#: admin/class-protect-uploads-admin.php:250 +msgid "The htaccess file has been updated." +msgstr "Il file .htacess è stato aggiornato" + +#: admin/class-protect-uploads-admin.php:294 +msgid "" +"The Protect Uploads plugin cannot work without Apache. Yourself or your web " +"host has to activate this module." +msgstr "" +"Il plugin Protect Uploads non può funzionare senza Apache. Verifica il tuo " +"webserver e attiva questo modulo." + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Error code" +msgstr "Codice errore" + +#: admin/views/includes/protect-uploads-admin-message.php:7 +msgid "Go to Protect Uploads documentation" +msgstr "Documentazione di Protect Uploads (in inglese)" + +#: admin/views/protect-uploads-admin-settings-page.php:9 +msgid "by" +msgstr "da" + +#: admin/views/protect-uploads-admin-settings-page.php:10 +msgid "" +"Prevent users to browse your uploads directory. You'll protect your uploads " +"directory to be accessed and content stolen too easily in one batch." +msgstr "" +"Inibisci la possibilità agli utenti di navigare nella directory upload. " +"Questo consente di proteggerti da eventuali furti e impedire l'esecuzione di " +"batch a questo scopo." + +#: admin/views/protect-uploads-admin-settings-page.php:17 +msgid "Status" +msgstr "Stato" + +#: admin/views/protect-uploads-admin-settings-page.php:22 +msgid "Uploads directory is protected." +msgstr "La directory upload è protetta" + +#: admin/views/protect-uploads-admin-settings-page.php:24 +msgid "" +"Your uploads directory is already protected by an htaccess " +"file or an Apache setting set for the whole website. You don't need extra " +"protection.
The «remove option» behind will have no effect on the current " +"protection." +msgstr "" +"La directory upload è già protetta da un file .htaccess o " +"una configurazione Apache. Non necessiti di ulteriore protezione." +"
L'opzione «rimuovi opzione» non avrà effetto sulla protezione attuale." + +#: admin/views/protect-uploads-admin-settings-page.php:27 +msgid "Uploads directory is not protected!" +msgstr "La directory upload non è protetta!" + +#: admin/views/protect-uploads-admin-settings-page.php:34 +#: admin/views/protect-uploads-admin-settings-page.php:39 +msgid "Protection" +msgstr "Protezione" + +#: admin/views/protect-uploads-admin-settings-page.php:44 +msgid "add index file" +msgstr "Aggiungi file index" + +#: admin/views/protect-uploads-admin-settings-page.php:45 +msgid "" +"This will create an index.php file on the root of your uploads directory. " +"This simple trick will hide the content of your whole uploads directory." +msgstr "" +"Questa operazione creerà un file index.php vuoto nella directory upload. " +"Questo è un semplice trucchetto per nascondere il contenuto nella directory." + +#: admin/views/protect-uploads-admin-settings-page.php:50 +msgid "prevent directory listing with htaccess" +msgstr "Inserisci protezione tramite .htaccess" + +#: admin/views/protect-uploads-admin-settings-page.php:51 +msgid "" +"Through the htaccess file, it will prevent people to browse your uploads " +"directory and return a 403 code (Forbidden Access)." +msgstr "" +"Tramite il file .htaccess, questo bloccherà l'accesso alle risorse presenti " +"nella directory mostrando il codice errore 403 (accesso negato)." + +#: admin/views/protect-uploads-admin-settings-page.php:56 +msgid "remove protection or disabled protection" +msgstr "Disattiva protezione" + +#: admin/views/protect-uploads-admin-settings-page.php:57 +msgid "Your uploads directory is not protected." +msgstr "" +"Questa operazione disabiliterà la protezione. Eventuali altre protezioni non " +"verranno disabilitate." + +#: admin/views/protect-uploads-admin-settings-page.php:65 +msgid "Check" +msgstr "Verifica" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "Visit your" +msgstr "Visita" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "uploads directory" +msgstr "la directory upload" + +#: admin/views/protect-uploads-admin-settings-page.php:68 +msgid "to check the current protection" +msgstr "per verificare la protezione attuale" + +#: admin/views/protect-uploads-admin-settings-page.php:73 +msgid "Support" +msgstr "Supporto" + +#: admin/views/protect-uploads-admin-settings-page.php:76 +msgid "" +"Protect Uploads Plugin support page." +msgstr "" +"Vedi la nostra pagina di supporto del plugin. (in inglese)" + +#: admin/views/protect-uploads-admin-settings-page.php:77 +msgid "" +"This plugin is compatible with the Watermark Plugin." +msgstr "" +"Questo plugin è compatibile con Watermark Plugin." + +#: admin/views/protect-uploads-admin-settings-page.php:78 +msgid "" +"To do so, you have to: 1. Install the Watermark Plugin 2. Then choose your " +"settings in this page and Update." +msgstr " " + +#: admin/views/protect-uploads-admin-settings-page.php:85 +msgid "Update" +msgstr "Salva le modifiche" + +#: admin/views/protect-uploads-admin-settings-page.php:94 +msgid "Protect Uploads plugin is developped by" +msgstr "Questo plugin è stato sviluppato da" diff --git a/wp-content/plugins/kfzrhzd/protect-uploads.php b/wp-content/plugins/kfzrhzd/protect-uploads.php new file mode 100644 index 00000000..e765570e --- /dev/null +++ b/wp-content/plugins/kfzrhzd/protect-uploads.php @@ -0,0 +1,44 @@ +run(); + +} + +function deactivate_alti_protect_uploads() { + + require_once plugin_dir_path( __FILE__ ) . 'admin/class-protect-uploads-admin.php'; + require_once plugin_dir_path( __FILE__ ) . 'includes/class-protect-uploads-deactivator.php'; + $deactivation = new Alti_ProtectUploads_Deactivator(); + $deactivation->run(); + +} + +register_activation_hook( __FILE__, 'activate_alti_protect_uploads' ); +register_deactivation_hook( __FILE__, 'deactivate_alti_protect_uploads' ); + +require plugin_dir_path( __FILE__ ) . 'includes/class-protect-uploads.php'; + +$plugin = new Alti_ProtectUploads(); +$plugin->run(); diff --git a/wp-content/plugins/kfzrhzd/readme.txt b/wp-content/plugins/kfzrhzd/readme.txt new file mode 100644 index 00000000..a8bdae9f --- /dev/null +++ b/wp-content/plugins/kfzrhzd/readme.txt @@ -0,0 +1,65 @@ +=== Protect uploads === +Contributors: alticreation +Donate link: https://www.alticreation.com/en/protect-uploads/ +Tags: uploads, protection, images protection, browsing images, uploads folder, image folder, avoid browsing folder, hide uploads, prevent uploads browsing, prevent images browsing, protect library, library +Requires at least: 3.0.1 +Tested up to: 5.4.1 +Requires PHP: 5.0 +Stable tag: 0.3 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +Protect your uploads directory to people who want to browse it. Avoid browsing of your uploads directory by adding a htaccess or index.php file. + +== Description == + +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). + +* Depending on your server setting, the htaccess option could be disabled. + +Available languages : + +* English +* Français +* Español +* Italian (thanks to Marko97) + +For support, please visit [protect uploads plugin](https://www.alticreation.com/en/protect-uploads/ "protect uploads plugin for Wordpress by alticreation") + +== Installation == + +1. Upload `protect-uploads` folder to the `/wp-content/plugins/` directory +2. Activate the plugin through the 'Plugins' menu in WordPress + +Note : GD library is needed and being able to create a .htaccess file in uploads directory. + +== Frequently Asked Questions == + += Support = +You can ask question and read documentation at [protect uploads plugin](https://www.alticreation.com/en/protect-uploads/ "protect uploads plugin for Wordpress by alticreation") + +== Screenshots == + +1. Administration Page for the plugin. + +== Upgrade Notice == + +Nothing for now + +== Changelog == + += 0.1 = +* Initial release + += 0.2 = +* Add security check to form in admin page. +* Add sidebar for admin page +* Add Italian translation (thanks to Marko97). +* Try to fix the wrong message saying that Protection is disabled eventhough it is actually working. + += 0.3 = +* Simplify UI admin. +* check presence of index.html. +* Remove option value managing current protection status. +* Reorganizing code and making it more modular and simple. +* Remove useless pieces. diff --git a/wp-content/plugins/kfzrhzd/uninstall.php b/wp-content/plugins/kfzrhzd/uninstall.php new file mode 100644 index 00000000..9ab56abc --- /dev/null +++ b/wp-content/plugins/kfzrhzd/uninstall.php @@ -0,0 +1,44 @@ +