• In order to use Full-WAF mode with a bedrock installation, I added

    // Connect to the DB and store the link into "$GLOBALS['nfw_mysqli']":
    $GLOBALS['nfw_mysqli'] = new mysqli(env('DB_HOST'), env('DB_USER'), env('DB_PASSWORD'), env('DB_NAME'), env('DB_PORT'));
    // We need the table prefix too:
    $GLOBALS['nfw_table_prefix'] = env('DB_PREFIX');

    to .htninja, however, calling https://example.com/wp/wp-cron.php does not trigger cron execution when Full-WAF is enabled. As a workaround, I am running NinjaFirewall in WordPress-WAF mode.

    I tried to whitelist wp-cron.php via

    // Do not filter any HTTP request sent to a script located inside the /myfolder/ directory:
    if (strpos($_SERVER['wp-cron.php'], '/wp/') !== FALSE) {
     	return 'ALLOW';
     }

    but this does change the behavior.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author nintechnet

    (@nintechnet)

    Can you try this instead ?

    if ( strpos( $_SERVER['SCRIPT_NAME'], '/wp-cron.php') !== FALSE ) {
     	return 'ALLOW';
    }
    Thread Starter Aaron

    (@jstask)

    If I got it right this time, it should be

    if ( strpos( $_SERVER['SCRIPT_FILENAME'], '/wp-cron.php') !== FALSE ) {
     	return 'ALLOW';
    }

    However, whitelisting does not to solve the issue.

    Plugin Author nintechnet

    (@nintechnet)

    By default, NinjaFirewall won’t block wp-cron.php
    Do you see anything in the firewall log (NinjaFirewall > Logs) ?

    Thread Starter Aaron

    (@jstask)

    Nope, nothing is logged there if I call https://example.com/wp/wp-cron.php. I am having missed cron events on two different hosting providers with a bedrock setup in full-WAF mode. In one case, I run

    wp cron event run --due-now --path="/path/to/the/wp/folder" > /dev/null  2>&1

    but with the other hosting I don’t have the option to run WP-CLI and therefore need to run it by calling wp-cron.php

    Plugin Author nintechnet

    (@nintechnet)

    When the firewall detects WP CLI, it exits and lets it go. Maybe there’s a PHP error that crashes the scheduled task?
    Can you enable debugging in WordPress and see if there’s anything written to the PHP error log?

    1. Edit your wp-config.php file
    2. Search for:
      define('WP_DEBUG', false);
    3. Replace with:
      define('WP_DEBUG', true);
    4. Add this line below:
      define( 'WP_DEBUG_LOG', true );

    Wait until you have a missed task and check if there’s a log, which will be saved to “/wp-content/debug.log”. If you run WP CLI, error won’t be saved to that log, but will be displayed on screen because it uses PHP CLI.

    Thread Starter Aaron

    (@jstask)

    There are no errors in WP CLI nor the debug.log when logging is enabled.

    Plugin Author nintechnet

    (@nintechnet)

    I found that NinjaFirewall configuration sample for Bedrock: https://gist.github.com/jcchikikomori/7f9cc9600b5330aa19d8b6427517df34

    Can you try it, just in case your issue would be due to a missing line or variable in the .htninja?

    Thread Starter Aaron

    (@jstask)

    I tried it, nothing changed

    Plugin Author nintechnet

    (@nintechnet)

    Can you try to run your scheduled tasks with this plugin: https://www.ads-software.com/plugins/wp-crontrol/
    Install it and go to the “Tools → Cron Events” menu. You can run them separately. The most important is to find an error or warning that would help to see what the problem is.

    Thread Starter Aaron

    (@jstask)

    It says something like
    Scheduled the cron event?nfwgccron?to run now. The original event will not be affected.
    In full-waf mode, the task gets duplicated with the execution in 1970, but it won’t run

    • This reply was modified 7 months, 1 week ago by Aaron.
    Plugin Author nintechnet

    (@nintechnet)

    Can you disable the firewall from the “Plugins” page, then go back to the Cron Events page and make sure there’s no more NinjaFirewall cron tasks: nfscanevent, nfwgccron, nfsecupdates and nfdailyreport.
    If you see one of them, delete it. They reactivate the firewall, it will recreate the task.

Viewing 11 replies - 1 through 11 (of 11 total)
  • The topic ‘blocked wp-cron.php’ is closed to new replies.