woocommerce / action-scheduler

A scalable, traceable job queue for background processing large queues of tasks in WordPress. Specifically designed for distribution in WordPress plugins (and themes) - no server access required.
https://actionscheduler.org
GNU General Public License v3.0
627 stars 113 forks source link

PHPCS issues in ActionScheduler_DBLogger.php #662

Closed amberhinds closed 2 years ago

amberhinds commented 3 years ago

Hello!

We've included Action Scheduler in one of our plugins (thank you!) and while doing security audits on our plugin, identified problems related to Action Scheduler.

We ran the plugin through WP Engine's linting test which helps identify best practices and potential problems. For this process, we are using PHP Codesniffer with rules derived from both the WordPress Coding Standards and PHPCompatibility rulesets. Below is a detailed line-by-line report of the sniff violation.

Can you please let me know if these are actual errors that require fixes? If so, we may be able to submit a pull request with fixes.

FILE: accessibility-checker-pro/includes/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php
--------------------------------------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------------------------------------
 140 | ERROR | Use placeholders and $wpdb->prepare(); found $format
     |       | (WordPress.DB.PreparedSQL.NotPrepared)
 144 | ERROR | Use placeholders and $wpdb->prepare(); found $sql_query
     |       | (WordPress.DB.PreparedSQL.NotPrepared)
--------------------------------------------------------------------------------------------------------------
barryhughes commented 3 years ago

HI @amberhinds—thanks for reporting this!

:memo: As a friendly note for the future, I'd ask first of all that you report any other security issues via HackerOne. This is our preferred way to handle possible security issues (and I'll make a note to update our readme file to make this clearer, as I don't think we currently cover this).

In most of these cases we are in fact using $wpdb->prepare() but we could still make some changes to reduce noise. For instance, we could add an appropriate // phpcs:ignore <rule> comment in the relevant places. If you're happy to submit a pull request for this that would be great, or else we can aim to circle back ourselves.

Thanks :-)

barryhughes commented 2 years ago

Addressed in https://github.com/woocommerce/action-scheduler/pull/768, now merged: closing.