diff --git a/README.md b/README.md index ed64d7b..f6e3655 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,8 @@ A blacklist extension for the famous [Statify](https://wordpress.org/plugins/sta This plugin adds customizable blacklist to Statify to allow blocking of referer spam or internal interactions. -### Current Features ## +### Features ## + #### Referer Blacklist #### Add a list of domains (for simplicity only second-level, e.g. _example.com_ which blocks _everything.example.com_). @@ -80,6 +81,10 @@ Because of this, an IP blacklist can only be applied while processing the reques ## Changelog ## +### Work in Progress ### +* Relicensed to GPLv2 or later +* Minor changes for WP Coding Standard + ### 1.4.0 / 10.06.2017 ### * IP blacklist implemented (#7) * Target page blacklist implemented (#8) diff --git a/inc/statifyblacklist.class.php b/inc/statifyblacklist.class.php index 3b981ab..c66ca84 100644 --- a/inc/statifyblacklist.class.php +++ b/inc/statifyblacklist.class.php @@ -69,7 +69,7 @@ class StatifyBlacklist { self::$multisite = ( is_multisite() && array_key_exists( STATIFYBLACKLIST_BASE, (array) get_site_option( 'active_sitewide_plugins' ) ) ); // Add Filter to statify hook if enabled. - if ( self::$_options['referer']['active'] != 0 ) { + if ( 0 !== self::$_options['referer']['active'] ) { add_filter( 'statify__skip_tracking', array( 'StatifyBlacklist', 'apply_blacklist_filter' ) ); } @@ -99,7 +99,7 @@ class StatifyBlacklist { // CronJob to clean up database. if ( defined( 'DOING_CRON' ) && DOING_CRON ) { - if ( self::$_options['referer']['cron'] == 1 || self::$_options['target']['cron'] == 1 ) { + if ( 1 === self::$_options['referer']['cron'] || 1 === self::$_options['target']['cron'] ) { add_action( 'statify_cleanup', array( 'StatifyBlacklist_Admin', 'cleanup_database' ) ); } } @@ -111,7 +111,7 @@ class StatifyBlacklist { * @since 1.0.0 * @since 1.2.1 update_options($options = null) Parameter with default value introduced. * - * @param array $options New options to save. + * @param array $options Optional. New options to save. * */ public static function update_options( $options = null ) { @@ -159,20 +159,20 @@ class StatifyBlacklist { */ public static function apply_blacklist_filter() { // Referer blacklist. - if ( isset( self::$_options['referer']['active'] ) && self::$_options['referer']['active'] != 0 ) { + if ( isset( self::$_options['referer']['active'] ) && 0 !== self::$_options['referer']['active'] ) { // Regular Expression filtering since 1.3.0. if ( isset( self::$_options['referer']['regexp'] ) && self::$_options['referer']['regexp'] > 0 ) { // Get full referer string. $referer = ( isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : '' ); // Merge given regular expressions into one. $regexp = '/' . implode( "|", array_keys( self::$_options['referer']['blacklist'] ) ) . '/'; - if ( self::$_options['referer']['regexp'] == 2 ) { + if ( 2 === self::$_options['referer']['regexp'] ) { $regexp .= 'i'; } // Check blacklist (return NULL to continue filtering). - return ( preg_match( $regexp, $referer ) === 1 ) ? true : null; + return ( 1 === preg_match( $regexp, $referer ) ) ? true : null; } else { // Extract relevant domain parts. $referer = strtolower( ( isset( $_SERVER['HTTP_REFERER'] ) ? parse_url( $_SERVER['HTTP_REFERER'], PHP_URL_HOST ) : '' ) ); @@ -188,20 +188,20 @@ class StatifyBlacklist { } // Target blacklist (since 1.4.0) - if ( isset( self::$_options['target']['active'] ) && self::$_options['target']['active'] != 0 ) { + if ( isset( self::$_options['target']['active'] ) && 0 !== self::$_options['target']['active'] ) { // Regular Expression filtering since 1.3.0. - if ( isset( self::$_options['target']['regexp'] ) && self::$_options['target']['regexp'] > 0 ) { + if ( isset( self::$_options['target']['regexp'] ) && 0 < self::$_options['target']['regexp'] ) { // Get full referer string. $target = ( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '/' ); // Merge given regular expressions into one $regexp = '/' . implode( "|", array_keys( self::$_options['target']['blacklist'] ) ) . '/'; - if ( self::$_options['target']['regexp'] == 2 ) { + if ( 2 === self::$_options['target']['regexp'] ) { $regexp .= 'i'; } // Check blacklist (return NULL to continue filtering). - return ( preg_match( $regexp, $target ) === 1 ) ? true : null; + return ( 1 === preg_match( $regexp, $target ) ) ? true : null; } else { // Extract target page. $target = ( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '/' ); @@ -215,8 +215,8 @@ class StatifyBlacklist { } // IP blacklist (since 1.4.0). - if ( isset ( self::$_options['ip']['active'] ) && self::$_options['ip']['active'] != 0 ) { - if ( ( $ip = self::getIP() ) !== false ) { + if ( isset ( self::$_options['ip']['active'] ) && 0 !== self::$_options['ip']['active'] ) { + if ( false !== ( $ip = self::getIP() ) ) { foreach ( self::$_options['ip']['blacklist'] as $net ) { if ( self::cidrMatch( $ip, $net ) ) { return true; @@ -254,7 +254,7 @@ class StatifyBlacklist { ) { if ( isset( $_SERVER[$k] ) ) { foreach ( explode( ',', $_SERVER[$k] ) as $ip ) { - if ( filter_var( $ip, FILTER_VALIDATE_IP ) !== false ) { + if ( false !== filter_var( $ip, FILTER_VALIDATE_IP ) ) { return $ip; } } @@ -300,7 +300,7 @@ class StatifyBlacklist { $left = $mask - 16 * ( $i - 1 ); $left = ( $left <= 16 ) ? $left : 16; $maskB = ~( 0xffff >> $left ) & 0xffff; - if ( ( $bytesAddr[$i] & $maskB ) != ( $bytesTest[$i] & $maskB ) ) { + if ( ( $bytesAddr[$i] & $maskB ) !== ( $bytesTest[$i] & $maskB ) ) { return false; } } @@ -326,7 +326,7 @@ class StatifyBlacklist { $mask = 32; } - return 0 === substr_compare( sprintf( '%032b', ip2long( $ip ) ), sprintf( '%032b', ip2long( $base ) ), 0, $mask ); + return ( 0 === substr_compare( sprintf( '%032b', ip2long( $ip ) ), sprintf( '%032b', ip2long( $base ) ), 0, $mask ) ); } } } diff --git a/inc/statifyblacklist_admin.class.php b/inc/statifyblacklist_admin.class.php index cc9b74a..f13d006 100644 --- a/inc/statifyblacklist_admin.class.php +++ b/inc/statifyblacklist_admin.class.php @@ -21,7 +21,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { /** * Update options. * - * @param array $options New options to save. + * @param array $options Optional. New options to save. * * @return array|bool array of sanitized array on errors, FALSE if there were none. * @since 1.1.1 @@ -30,7 +30,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { if ( isset( $options ) && current_user_can( 'manage_options' ) ) { // Sanitize URLs and remove empty inputs. $givenReferer = $options['referer']['blacklist']; - if ( $options['referer']['regexp'] == 0 ) { + if ( 0 === $options['referer']['regexp'] ) { $sanitizedReferer = self::sanitizeURLs( $givenReferer ); } else { $sanitizedReferer = $givenReferer; @@ -107,7 +107,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { * */ public static function plugin_meta_link( $links, $file ) { - if ( $file == STATIFYBLACKLIST_BASE ) { + if ( $file === STATIFYBLACKLIST_BASE ) { $links[] = 'GitHub'; } @@ -128,7 +128,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { public static function plugin_actions_links( $links, $file ) { $base = self::$multisite ? network_admin_url( 'settings.php' ) : admin_url( 'options-general.php' ); - if ( $file == STATIFYBLACKLIST_BASE && current_user_can( 'manage_options' ) ) { + if ( $file === STATIFYBLACKLIST_BASE && current_user_can( 'manage_options' ) ) { array_unshift( $links, sprintf( '%s', esc_attr( add_query_arg( 'page', 'statify-blacklist', $base ) ), __( 'Settings' ) ) @@ -152,8 +152,8 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { } if ( defined( 'DOING_CRON' ) && DOING_CRON ) { - $cleanRef = ( self::$_options['referer']['cron'] == 1 ); - $cleanTrg = ( self::$_options['target']['cron'] == 1 ); + $cleanRef = ( 1 === self::$_options['referer']['cron'] ); + $cleanTrg = ( 1 === self::$_options['target']['cron'] ); } else { $cleanRef = true; $cleanTrg = true; @@ -192,7 +192,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { $wpdb->query( $wpdb->prepare( "DELETE FROM `$wpdb->statify` WHERE " - . ( ( self::$_options['referer']['regexp'] == 1 ) ? " BINARY " : "" ) + . ( ( 1 === self::$_options['referer']['regexp'] ) ? " BINARY " : "" ) . "referrer REGEXP %s", $refererRegexp ) ); @@ -201,7 +201,7 @@ class StatifyBlacklist_Admin extends StatifyBlacklist { $wpdb->query( $wpdb->prepare( "DELETE FROM `$wpdb->statify` WHERE " - . ( ( self::$_options['target']['regexp'] == 1 ) ? " BINARY " : "" ) + . ( ( 1 === self::$_options['target']['regexp'] ) ? " BINARY " : "" ) . "target REGEXP %s", $targetRegexp ) ); diff --git a/inc/statifyblacklist_system.class.php b/inc/statifyblacklist_system.class.php index 394f16d..10e3bf7 100644 --- a/inc/statifyblacklist_system.class.php +++ b/inc/statifyblacklist_system.class.php @@ -125,7 +125,7 @@ class StatifyBlacklist_System extends StatifyBlacklist { ), 'version' => 1.4 ); - if ( ( is_multisite() && array_key_exists( STATIFYBLACKLIST_BASE, (array) get_site_option( 'active_sitewide_plugins' ) ) ) ) { + if ( is_multisite() && array_key_exists( STATIFYBLACKLIST_BASE, (array) get_site_option( 'active_sitewide_plugins' ) ) ) { update_site_option( 'statify-blacklist', $options ); } else { update_option( 'statify-blacklist', $options ); @@ -134,7 +134,7 @@ class StatifyBlacklist_System extends StatifyBlacklist { } // Version older than current major release. - if ( self::$_options['version'] < self::VERSION_MAIN ) { + if ( self::VERSION_MAIN > self::$_options['version'] ) { // Merge default options with current config, assuming only additive changes. $options = array_merge_recursive( self::defaultOptions(), self::$_options ); $options['version'] = self::VERSION_MAIN;