0, 'referer' => array() ) ); } /** * Apply the blacklist filter if active * * @return TRUE if referer matches blacklist. * * @since 1.0.0 */ public static function apply_blacklist_filter() { /* Skip if blacklist is inactive */ if ( self::$_options['active_referer'] != 1 ) { return false; } /* Extract relevant domain parts */ $referer = strtolower( ( isset( $_SERVER['HTTP_REFERER'] ) ? parse_url( $_SERVER['HTTP_REFERER'], PHP_URL_HOST ) : '' ) ); $referer = explode( '.', $referer ); if ( count( $referer ) > 1 ) { $referer = implode( '.', array_slice( $referer, - 2 ) ); } else { $referer = implode( '.', $referer ); } /* Get blacklist */ $blacklist = self::$_options['referer']; /* Check blacklist */ return in_array( $referer, $blacklist ); } }