gdarko / ip-location-block

IP Location Block for WordPress. Supports different ip geolocation services.
GNU General Public License v3.0
9 stars 2 forks source link

=== IP Location Block === Contributors: darkog Tags: country, block, ip address, ip geo block, geolocation Requires at least: 3.7 Tested up to: 6.6 Stable tag: 1.3.3 License: GPLv3 License URI: https://www.gnu.org/licenses/gpl-3.0.txt

Easily setup location block based on the visitor country by using ip and asn details. Protects your site from spam, login attempts, zero-day exploits, malicious access & more.

== Description ==

IP Location Block plugin that allows you to block access to your site based on the visitor location while also keeping your site safe from malicious attacks. The plugin brings a smart and powerful protection methods named as "WP Zero-day Exploit Prevention" and "WP Metadata Exploit Protection".

Combined with those methods and IP address geolocation, you'll be surprised to find a bunch of malicious or undesirable access blocked in the logs of this plugin after several days of installation.

Note: This plugin is based on the now abandoned "IP Geo Block" plugin by tokkonopapa. I fixed various issues and improved the overall codebase.

= Features =

= Documentation =

Documentation and more information can always be found on our plugin website.

= Attribution =

This package includes GeoLite2 library distributed by MaxMind, available from MaxMind, and also includes IP2Location open source libraries available from IP2Location.

Also thanks for providing the following services and REST APIs for free.

= Development =

Development of this plugin happens at IP Location Block - GitHub

All contributions will always be welcome.

== Installation ==

= Using The WordPress Dashboard =

  1. Navigate to the 'Add New' in the plugins dashboard
  2. Search for 'IP Location Block'
  3. Click 'Install Now'
  4. Activate the plugin on the Plugin dashboard
  5. Stay cool for a while and go to 'Settings' » 'IP Location Block'
  6. Try 'Best for Back-end' button for easy setup at the bottom of this plugin's setting page.

Please refer to the document for your best setup.

== Frequently Asked Questions ==

= Does the site using this plugin comply with GDPR? =

This plugin is designed based on the principle of "Privacy by design" so that you can compliantly run it to GDPR. As guarding against personal data breach, IP addresses in this plugin are encrypted and also can be anonymized by default. It also provides some functions not only to manually erase them but also to automatically remove them when those are exceeded a certain amount/time.

However, these are the part of GDPR requirements and do not guarantee that the site is compliant with GDPR. Refer to 3.0.11 release note for details.

= Is there a way to migrate from IP Geo Block"

Yes, if "IP Geo Block" settings are detected, you will see migrate option in the Settings last in "Plugin Settings" section. This will copy the settings from "IP Geo Block" only.

= Does this plugin support multisite? =

Yes. You can synchronize the settings with all the sites on the network when you activate on network and enable "Network wide settings" in "Plugin settings" section.

= Does this plugin allows blocking US States, Country Regions or Cities?

Yes. Please view City/State Level Matching for more details.

= Does this plugin works well with caching? =

The short answer is YES, especially for the purpose of security e.g. blocking malicious access both on the back-end and on the front-end.

You can find the long answer and the compatibility list of cache plugins at "Compatibility with cache plugins".

= I still have access from blacklisted country. Does it work correctly? =

Absolutely, YES.

Sometimes, a WordFence Security user would report this type of claim when he/she found some accesses in its Live traffic view. But please don't worry. Before WordPress runs, WordFence cleverly filters out malicious requests to your site using auto_prepend_file directive to include PHP based Web Application Firewall. Then this plugin validates the rest of the requests that pass over Wordfence because those were not in WAF rules, especially you enables "Prevent Zero-day Exploit".

It would also possibly be caused by the accuracy of country code in the geolocation databases. Actually, there is a case that a same IP address has different country code.

For more detail, please refer to "I still have access from blacklisted country.".

= How can I test this plugin works? =

The easiest way is to use free proxy browser addon.

Another one is to use http header browser addon.

You can add an IP address to the X-Forwarded-For header to emulate the access behind the proxy. In this case, you should add HTTP_X_FORWARDED_FOR into the "$_SERVER keys for extra IPs" on "Settings" tab.

See more details at "How to test prevention of attacks".

= I'm locked out! What shall I do? =

Please find the solution in Quick recovery from blocking on your login page at first.

You can also find another solution by editing "Emergent Functionality" code section near the bottom of ip-location-block.php. This code block can be activated by replacing /* (opening multi-line comment) at the top of the line to // (single line comment), or * at the end of the line to */ (closing multi-line comment).

`/**

Please not that you have to use an appropriate editor.

After saving and uploading it to /wp-content/plugins/ip-location-block/ on your server via FTP, you become to be able to login again as an admin.

Remember that you should upload the original one after re-configuration to deactivate this feature.

This document can also help you.

= Do I have to turn on all the selection to enhance security? =

Yes. Roughly speaking, the strategy of this plugin has been constructed as follows:

Please try "Best for Back-end" button at the bottom of this plugin's setting page for easy setup. And also see more details in "The best practice of target settings".

= Does this plugin validate all the requests? =

Unfortunately, no. This plugin can't handle the requests that are not parsed by WordPress. In other words, a standalone file (PHP, CGI or something executable) that is unrelated to WordPress can't be validated by this plugin even if it is in the WordPress install directory.

But there's exceptions: When you enable "Force to load WP core" for Plugins area or Themes area, a standalone PHP file becomes to be able to be blocked. Sometimes this kind of file has some vulnerabilities. This function protects your site against such a case.

= How to resolve "Sorry, your request cannot be accepted."? =

If you encounter this message, please refer to this document to resolve your blocking issue.

If you can't solve your issue, please let me know about it on the support forum. Your logs in this plugin and "Installation information" at "Plugin settings" will be a great help to resolve the issue.

= How to resolve issues related to ajax-requests being blocked in admin? =

Check the "Admin ajax/post" option in "Back-end target settings", either disable it or whitelist the required Ajax actions.

= How can I fix "Unable to write" error? =

When you enable "Force to load WP core" options, this plugin will try to configure .htaccess in your /wp-content/plugins/ and /wp-content/themes/ directory in order to protect your site against the malicious attacks to the OMG plugins and themes.

But some servers doesn't give read / write permission against .htaccess to WordPress. In this case, you can configure .htaccess files by your own hand instead of enabling "Force to load WP core" options.

Please refer to "How can I fix permission troubles?" in order to fix this error.

== Other Notes ==

= Known issues =

== Screenshots ==

  1. IP Location Plugin - Settings tab
  2. IP Location Plugin - Validation rules and behavior
  3. IP Location Plugin - Back-end target settings
  4. IP Location Plugin - Front-end target settings
  5. IP Location Plugin - Geolocation API settings
  6. IP Location Plugin - IP address cache settings
  7. IP Location Plugin - Statistics tab
  8. IP Location Plugin - Logs tab
  9. IP Location Plugin - Search tab
  10. IP Location Plugin - Attribution tab
  11. IP Location Plugin - Multisite list on network

== Changelog ==

= 1.3.3 = Release Date - 24 Sep 2024

= 1.3.2 = Release Date - 01 Aug 2024

= 1.3.1 = Release Date - 03 Apr 2024

= 1.3.0 = Release Date - 20 Feb 2024

= 1.2.3 = Release Date - 12 Nov 2023

= 1.2.2 = Release Date - 01 Nov 2023

= 1.2.1 = Release Date - 31 Oct 2023

= 1.2.0 = Release Date - 30 Oct 2023

= 1.1.5 = Release Date - 28 May 2023

= 1.1.4 = Release Date - 28 May 2023

= 1.1.3 = Release Date - 24 Jul 2022

= 1.1.2 = Release Date - 03 May 2022

= 1.1.1 = Release Date - 02 May 2022

= 1.1.0 = Release Date - 01 May 2022

= 1.0.7 = Release Date - 21 Dec 2021

= 1.0.6 = Release Date - 21 Nov 2021

= 1.0.5 = Release Date - 20 Nov 2021

= 1.0.4 = Release Date - 08 Jun 2021

= 1.0.3 = Release Date - 18 May 2021

= 1.0.2 = Release Date - 18 May 2021

= 1.0.1 = Release Date - 17 May 2021

= 1.0.0 = Release Date - 17 May 2021

== Upgrade Notice ==

As of version 1.2.0, the plugin supports City/State Level Matching.