IQ block country 1.2.17 chyba třídy iqbc WordPress pluginu

iQ Block Country je zásuvný modul, který umožňuje omezit přístup k obsahu vašich webových stránek. Návštěvníkům z definovaných zemí můžete povolit nebo zakázat přístup k obsahu (jeho částem). Pokud máte například obsah, který by měl být omezen na omezenou skupinu zemí, můžete tak učinit.
Pokud chcete zablokovat nepoctivé země, které způsobují problémy, jako jsou například pokusy o hackerské útoky, rozesílání spamu do vašich komentářů atd., můžete je zablokovat také.

Zablokovaným návštěvníkům můžete zobrazit zprávu, kterou můžete stylizovat pomocí CSS, nebo je můžete přesměrovat na stránku v rámci webu WordPress. Nebo můžete návštěvníky přesměrovat na externí web. Návštěvníkům můžete (ne)povolit přístup k článkům, kategoriím nebo stránkám blogu nebo k celému obsahu. Zabraňte návštěvníkům, aby na vašem webu WordPress prováděli škodlivé věci, nebo omezte země, které mohou mít přístup k vašemu blogu. Přidejte na svůj web WordPress další vrstvu zabezpečení.

Tento doplněk využívá databázi GeoLite od společnosti Maxmind. Její přesnost je 99,5 %, takže na bezplatnou databázi je to docela dobré. Pokud potřebujete vyšší přesnost, můžete si zakoupit licenci přímo od společnosti MaxMind.
Pokud nemůžete nebo nechcete stáhnout databázi GeoIP od společnosti Maxmind, můžete použít webovou stránku GeoIP API dostupnou na adrese https://webence.nl/geoip-api/

Chyba IQ Block Country 1.2.17

Po předposlední aktualizaci byla v rozšíření nevýznamná chyba, kde ale díky tomu byl přístup v repo WordPress na čas zablokován. Po druhé opravě přišla oprava třetí, ta ale obsahuje překlep. Po poslední aktualizaci, se dle nastavení. může objevit řada chybových hlášek. Což by nemuselo vadit ale tato neprávně definovaná třída zablokuje přístup do administrace webu

Warning: Undefined variable $netmask_decimal in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php on line 286

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php:286) in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-checks.php on line 398

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php:286) in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-checks.php on line 399

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php:286) in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-checks.php on line 400

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php:286) in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-checks.php on line 401

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php:286) in /var/www/web/wp-content/plugins/iq-block-country/libs/blockcountry-checks.php on line 403

Oprava

Ve složce libs, souboru validation

/wp-content/plugins/iq-block-country/libs/blockcountry-validation.php

stačí na řádku 286 přepsat netmask_decimal na iqbc_netmask_decimal

function iqblockcountry_ip_in_ipv4_range( $iqbc_ip, $iqbc_range )
{
    if (strpos($iqbc_range, '/') == false ) {
        $iqbc_range .= '/32';
    }
    // $iqbc_range is in IP/CIDR format eg 127.0.0.1/24
    list( $iqbc_range, $iqbc_netmask ) = explode('/', $iqbc_range, 2);
    $iqbc_range_decimal = ip2long($iqbc_range);
    $iqbc_ip_decimal = ip2long($iqbc_ip);
    $iqbc_wildcard_decimal = pow(2, ( 32 - $iqbc_netmask )) - 1;
    $iqbc_netmask_decimal = ~ $iqbc_wildcard_decimal;
    return ( ( $iqbc_ip_decimal & $iqbc_netmask_decimal ) == ( $iqbc_range_decimal & $iqbc_netmask_decimal ) );
}

Rozšíření začne fungovat a administrace je znovu přístupná

Užitečné

Web pluginu IQ Block Country
Text IPset iptables firewall

ICTIS.CZ