WordPress.org

Make WordPress Core

Ticket #36055: 36055.2.patch

File 36055.2.patch, 2.4 KB (added by markoheijnen, 3 years ago)

Ignore pingback methods

  • src/wp-includes/class-wp-xmlrpc-server.php

     
    198198        }
    199199
    200200        /**
     201         * Check if the XML-RPC is enabled before calling the method.
     202         *
     203         * @since 4.5.0
     204         * @access public
     205         */
     206        public function call( $methodname, $args ) {
     207                if ( 'pingback.' != substr( $methodname, 0, 9) ) {
     208                        /*
     209                         * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
     210                         * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
     211                         */
     212                        $enabled = apply_filters( 'pre_option_enable_xmlrpc', false );
     213                        if ( false === $enabled ) {
     214                                $enabled = apply_filters( 'option_enable_xmlrpc', true );
     215                        }
     216
     217                        /**
     218                         * Filter whether XML-RPC is enabled.
     219                         *
     220                         * This is the proper filter for turning off XML-RPC.
     221                         *
     222                         * @since 3.5.0
     223                         *
     224                         * @param bool $enabled Whether XML-RPC is enabled. Default true.
     225                         */
     226                        $enabled = apply_filters( 'xmlrpc_enabled', $enabled );
     227
     228                        if ( ! $enabled ) {
     229                                return new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site.' ) ) );
     230                        }
     231                }
     232
     233                return parent::call( $methodname, $args );
     234        }
     235
     236        /**
    201237         * Test XMLRPC API by saying, "Hello!" to client.
    202238         *
    203239         * @since 1.5.0
     
    237273         * @return WP_User|bool WP_User object if authentication passed, false otherwise
    238274         */
    239275        public function login( $username, $password ) {
    240                 /*
    241                  * Respect old get_option() filters left for back-compat when the 'enable_xmlrpc'
    242                  * option was deprecated in 3.5.0. Use the 'xmlrpc_enabled' hook instead.
    243                  */
    244                 $enabled = apply_filters( 'pre_option_enable_xmlrpc', false );
    245                 if ( false === $enabled ) {
    246                         $enabled = apply_filters( 'option_enable_xmlrpc', true );
    247                 }
    248 
    249                 /**
    250                  * Filter whether XML-RPC is enabled.
    251                  *
    252                  * This is the proper filter for turning off XML-RPC.
    253                  *
    254                  * @since 3.5.0
    255                  *
    256                  * @param bool $enabled Whether XML-RPC is enabled. Default true.
    257                  */
    258                 $enabled = apply_filters( 'xmlrpc_enabled', $enabled );
    259 
    260                 if ( ! $enabled ) {
    261                         $this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site.' ) ) );
    262                         return false;
    263                 }
    264 
    265276                if ( $this->auth_failed ) {
    266277                        $user = new WP_Error( 'login_prevented' );
    267278                } else {