This award-winning plugin helps restrict the framing and printing of web pages and copying of contents by deactivating the right-click, drag, copy, shortcuts, and other methods.
The plugin is compatible with newer versions of Joomla. Older versions of this plugin for Joomla 1.5 and 2.5 are available on Github.com.
- 3.10, 4.4, 5
- Last update
- Sun, 29 Oct 2023
- 1'st release
- Fri, 1 Oct 2010
- JED page
- ext...org /...s/anticopy
- Live demo
- Visit demo
Restrictions by User Groups:
- Restrict a web page is printed
- Disable Right Click
- Make HTML source code hard to read
- Disable dragging
- Restrict copying
- Popup notification on copy or cut
Also, it has more functionalities such as URL exclusion and prevention of framing on other websites.
The paid full version of this plugin provides the following additional anti-copy protections:
- Protect the source code of the HTML.
- Detect if devtools is open. If yes, it hides content and shows a notification.
- Restrict keyboard shortcuts.
The HTML source code protection can be deactivated for search engine bots. Also, it is possible to add "noarchive" meta tag to hide cached contents on search results. Also, you can specify which bots are allowed to access your website's content.
4.3.0. Joomla 5 compatibility with the B/C plugin.
4.2.0. Added the parameter to the devtools detection.
- The structure of the system plugin has been modified by adding the "onBeforeCompileHead" event.
- The anti-copy protection "Make HTML hard to read" has been modified.
- The new anti-copy protection "Load HTML body with AJAX" has been added.
- URL exclusion has been supported wildcard matching.
- Skips AJAX requests.
3.3.0. The new option "URL Exclusion" has been added.
3.2.0. The new feature, which is detecting if devtools is open, has been added.
3.1.3. Patch for the new update server
3.1.2. HTML source code encoding has been changed.
3.1.1. The code which makes HTML source code hard to read, completely rewritten due to several serious problems.
- For the message on copy or cut, the js alert is replaced with the modal.
- Solved an issue for the functionality which adds the "norachive" meta tag.
- Other minor changes.
- Anti framing code was rewritten to allow Joomla's internal iframes.
- The configuration interface was improved and the language file was changed.
- The anti print screen functionality has been removed.
- The new functionality which makes HTML source code hard to read has been added.
- The common parameter for dragging and copying has been separated into two distinct parameters.
- It has been stopped to add the meta tag for disabling IE6's image toolbar.
2.0.1. A patch for Joomla 4 and minor changes in the language file
2.0.0. Major changes in copying and dragging. Also some minor changes: print screen, user group, language file, and label/description of parameters.
1.8.2. Minor bug at user group option has been fixed in J3.x version only.
1.8.1. Tag search is improved. And default value of the parameter for Anti PrintScreen changed to disabled.
1.8.0. Multilingual ready for admin panel.
1.7.1. Usergroup bug has been fixed in J2.5 and J3.x versions only.
1.7. "Disallow for Images" option has been added in anti right-click function. And new functionalities (Anti Print and Printscreen) have been added.
1.6. Anti drag functionality has been added in anti-select function for image and link. And a tag, which disables the image toolbar of IE, has been added in anti-copy function.
1.5. "Except Opera" option has been added in anti-select and anti-copy function.
1.4. Anti framing tool has been added. Usergroup bug has been fixed in the J2.5 version only.
1.3. Joomla event has been changed.
1.2. Code optimization.
1.1. Usergroup option has been added in the J2.5 version only.
1.0. Initial release.
Update to a newer version from an older version
You can update your installed copy of the free version to the latest free version by using Joomla Updater on your live site. For a paid version, it requires a payment or invoice ID. To update a paid version with Joomla Updater, you should enter your payment or invoice ID into the installer plugin of this extension. If you have a valid and unexpired payment or invoice ID, your paid full version of this extension can be updated to its latest paid full version without a charge. To get your payment or invoice ID, open the corresponding page and submit your PayPal account used for the payment.
Also, you can update it manually.
Compatibility with Joomla Versions
This plugin is compatible with both Joomla 3.10 and Joomla 4. Older versions of the plugin are available on Github.com.
The plugin requires configuration before enabling it — for example, restricted user groups, etc. Also, you need to remember it automatically adds Public and Guest groups to the list of restricted groups.
Plugin order Before activating the "Protect HTML" protection, you should verify the plugin order. The plugin should be executed after other system plugins such as "System - SEF" and "JExtBOX Equation" modify the HTML source code. For the plugin order, there is a simple trick that sets its order as the last. Also, you need to remember it requires re-ordering after another extension is installed.
It stops anti-copy functionalities except for anti-frame for a web page is included in the "URL Exclusion" list. Multiple URLs should be separated by a new line. Also, it supports wildcard pattern matching.
The anti print screen functionality has been removed from version 3.0.0. Because this operating-system-specific functionality is not reliable. Also, it was a problem for nominal visitors.
The extension can't completely protect the content inside an iframe that loads its content from another website.
Select and Copy/Cut
It allows text selection but restricts copy and cut.
It doesn't block paste in form elements due to the nominal user's comfortability.
The back end isn't affected. It adds AntiCopy protections to the front-end web pages only.
Anti-Frame Protection and Joomla's Internal iframes or Modals
Anti-frame protection is compatible with Joomla's internal iframes and modals.
For AJAX requests and responses, no issues were detected. We tested it with CComment which supports AJAX.
If a current request is received from a search engine, it is possible to automatically deactivate HTML source code protection. You can specify which bots are allowed to access your website's content. Also, it adds "noarchive" meta tag to hide cached contents on search results.
The plugin has individual options for disabling the following shortcuts:
- Ctrl+U - View page source
- Ctrl+S - Save web page
- F12 - Inspect
- Ctrl+Shift+(I or J) - Developer tools
- Ctrl+P - Print web page
HTML body source code protection
It provides two protection methods: "Load HTML body with AJAX" and "Encode HTML body and Shuffle". The AJAX-based method is newly proposed. Also, it is not stable. For against HTML source code saving or viewing, the new protection is more effective than the legacy method.
As mentioned above, before activating such source code protection is called Protect HTML, you should verify the plugin order. This protection modifies or caches HTML body source code. Thus this plugin should be executed after other system plugins that modify HTML body source code. If the plugin order is wrong, front-end web pages can be broken or can't be loaded correctly. In this case, there is a simple trick that is setting its order as the last.
If you choose the "Load HTML body with AJAX" option, enable the "Ajax - AntiCopy" plugin. The AJAX-based protection method can automatically fall back to the "Encode HTML body and Shuffle" method for a web page that includes scripts due to possible issues. However, we recommend checking if HTML pages are correctly loaded.
The "Try to detect if devtools is opened" protection is based on the outer and inner sizes of the browser's window. Outer size represents the size of the whole browser window including the address bar, bookmarks bar, sidebar, window border, and resizing handles. Inner size is the interior size of the window including the scroll bars. Inner size is always less than outer size and its difference is not much greater. If devtools is opened, the difference is increased and it is greater than the ordinary difference which can be defined as a devtools detection parameter. Such parameter value is represented by pixels or a percentage. The difference between outer and inner sizes defines the pixel value. The percent value is defined by the following formula. Percent = [(outer - inner) / outer * 100] where [...] means integer part of a number. Finally, if the difference is greater than this parameter, it hides a web page's content.
We prefer silent protections. So only one notification message derived from previous versions of the plugin can be shown on copy or cut.
We support the most recent version of the extension.
Also, we develop and test our extensions for the latest release of Joomla.
AntiCopy is the Joomla extension.
Copyright (©) 2010 - 2023 Galaa
AntiCopy 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 3 of the License, or (at your option) any later version.
AntiCopy 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, see www.gnu.org/licenses.