Changeset 42343 for trunk/src/wp-includes/http.php
- Timestamp:
- 11/30/2017 11:09:33 PM (8 years ago)
- File:
-
- 1 edited
-
trunk/src/wp-includes/http.php (modified) (24 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/http.php
r41573 r42343 46 46 function wp_safe_remote_request( $url, $args = array() ) { 47 47 $args['reject_unsafe_urls'] = true; 48 $http = _wp_http_get_object();48 $http = _wp_http_get_object(); 49 49 return $http->request( $url, $args ); 50 50 } … … 67 67 function wp_safe_remote_get( $url, $args = array() ) { 68 68 $args['reject_unsafe_urls'] = true; 69 $http = _wp_http_get_object();69 $http = _wp_http_get_object(); 70 70 return $http->get( $url, $args ); 71 71 } … … 88 88 function wp_safe_remote_post( $url, $args = array() ) { 89 89 $args['reject_unsafe_urls'] = true; 90 $http = _wp_http_get_object();90 $http = _wp_http_get_object(); 91 91 return $http->post( $url, $args ); 92 92 } … … 109 109 function wp_safe_remote_head( $url, $args = array() ) { 110 110 $args['reject_unsafe_urls'] = true; 111 $http = _wp_http_get_object();111 $http = _wp_http_get_object(); 112 112 return $http->head( $url, $args ); 113 113 } … … 149 149 * @return WP_Error|array The response or WP_Error on failure. 150 150 */ 151 function wp_remote_request( $url, $args = array()) {151 function wp_remote_request( $url, $args = array() ) { 152 152 $http = _wp_http_get_object(); 153 153 return $http->request( $url, $args ); … … 166 166 * @return WP_Error|array The response or WP_Error on failure. 167 167 */ 168 function wp_remote_get( $url, $args = array()) {168 function wp_remote_get( $url, $args = array() ) { 169 169 $http = _wp_http_get_object(); 170 170 return $http->get( $url, $args ); … … 183 183 * @return WP_Error|array The response or WP_Error on failure. 184 184 */ 185 function wp_remote_post( $url, $args = array()) {185 function wp_remote_post( $url, $args = array() ) { 186 186 $http = _wp_http_get_object(); 187 187 return $http->post( $url, $args ); … … 200 200 * @return WP_Error|array The response or WP_Error on failure. 201 201 */ 202 function wp_remote_head( $url, $args = array()) {202 function wp_remote_head( $url, $args = array() ) { 203 203 $http = _wp_http_get_object(); 204 204 return $http->head( $url, $args ); … … 239 239 240 240 if ( isset( $response['headers'][ $header ] ) ) { 241 return $response['headers'][ $header];241 return $response['headers'][ $header ]; 242 242 } 243 243 … … 256 256 */ 257 257 function wp_remote_retrieve_response_code( $response ) { 258 if ( is_wp_error( $response) || ! isset($response['response']) || ! is_array($response['response']))258 if ( is_wp_error( $response ) || ! isset( $response['response'] ) || ! is_array( $response['response'] ) ) { 259 259 return ''; 260 } 260 261 261 262 return $response['response']['code']; … … 273 274 */ 274 275 function wp_remote_retrieve_response_message( $response ) { 275 if ( is_wp_error( $response) || ! isset($response['response']) || ! is_array($response['response']))276 if ( is_wp_error( $response ) || ! isset( $response['response'] ) || ! is_array( $response['response'] ) ) { 276 277 return ''; 278 } 277 279 278 280 return $response['response']['message']; … … 288 290 */ 289 291 function wp_remote_retrieve_body( $response ) { 290 if ( is_wp_error( $response) || ! isset($response['body']) )292 if ( is_wp_error( $response ) || ! isset( $response['body'] ) ) { 291 293 return ''; 294 } 292 295 293 296 return $response['body']; … … 377 380 } 378 381 379 if ( $url && ! isset( $capabilities['ssl'] ) ) {382 if ( $url && ! isset( $capabilities['ssl'] ) ) { 380 383 $scheme = parse_url( $url, PHP_URL_SCHEME ); 381 384 if ( 'https' == $scheme || 'ssl' == $scheme ) { … … 396 399 function get_http_origin() { 397 400 $origin = ''; 398 if ( ! empty ( $_SERVER[ 'HTTP_ORIGIN' ] ) ) 399 $origin = $_SERVER[ 'HTTP_ORIGIN' ]; 401 if ( ! empty( $_SERVER['HTTP_ORIGIN'] ) ) { 402 $origin = $_SERVER['HTTP_ORIGIN']; 403 } 400 404 401 405 /** … … 418 422 function get_allowed_http_origins() { 419 423 $admin_origin = parse_url( admin_url() ); 420 $home_origin = parse_url( home_url() );424 $home_origin = parse_url( home_url() ); 421 425 422 426 // @todo preserve port? 423 $allowed_origins = array_unique( array( 424 'http://' . $admin_origin[ 'host' ], 425 'https://' . $admin_origin[ 'host' ], 426 'http://' . $home_origin[ 'host' ], 427 'https://' . $home_origin[ 'host' ], 428 ) ); 427 $allowed_origins = array_unique( 428 array( 429 'http://' . $admin_origin['host'], 430 'https://' . $admin_origin['host'], 431 'http://' . $home_origin['host'], 432 'https://' . $home_origin['host'], 433 ) 434 ); 429 435 430 436 /** … … 441 447 * } 442 448 */ 443 return apply_filters( 'allowed_http_origins' , $allowed_origins );449 return apply_filters( 'allowed_http_origins', $allowed_origins ); 444 450 } 445 451 … … 455 461 $origin_arg = $origin; 456 462 457 if ( null === $origin ) 463 if ( null === $origin ) { 458 464 $origin = get_http_origin(); 459 460 if ( $origin && ! in_array( $origin, get_allowed_http_origins() ) ) 465 } 466 467 if ( $origin && ! in_array( $origin, get_allowed_http_origins() ) ) { 461 468 $origin = ''; 469 } 462 470 463 471 /** … … 489 497 490 498 if ( is_allowed_http_origin( $origin ) ) { 491 @header( 'Access-Control-Allow-Origin: ' . $origin );499 @header( 'Access-Control-Allow-Origin: ' . $origin ); 492 500 @header( 'Access-Control-Allow-Credentials: true' ); 493 if ( 'OPTIONS' === $_SERVER['REQUEST_METHOD'] ) 501 if ( 'OPTIONS' === $_SERVER['REQUEST_METHOD'] ) { 494 502 exit; 503 } 495 504 return $origin; 496 505 } … … 514 523 function wp_http_validate_url( $url ) { 515 524 $original_url = $url; 516 $url = wp_kses_bad_protocol( $url, array( 'http', 'https' ) );517 if ( ! $url || strtolower( $url ) !== strtolower( $original_url ) ) 525 $url = wp_kses_bad_protocol( $url, array( 'http', 'https' ) ); 526 if ( ! $url || strtolower( $url ) !== strtolower( $original_url ) ) { 518 527 return false; 528 } 519 529 520 530 $parsed_url = @parse_url( $url ); 521 if ( ! $parsed_url || empty( $parsed_url['host'] ) ) 531 if ( ! $parsed_url || empty( $parsed_url['host'] ) ) { 522 532 return false; 523 524 if ( isset( $parsed_url['user'] ) || isset( $parsed_url['pass'] ) ) 533 } 534 535 if ( isset( $parsed_url['user'] ) || isset( $parsed_url['pass'] ) ) { 525 536 return false; 526 527 if ( false !== strpbrk( $parsed_url['host'], ':#?[]' ) ) 537 } 538 539 if ( false !== strpbrk( $parsed_url['host'], ':#?[]' ) ) { 528 540 return false; 541 } 529 542 530 543 $parsed_home = @parse_url( get_option( 'home' ) ); … … 542 555 } else { 543 556 $ip = gethostbyname( $host ); 544 if ( $ip === $host ) // Error condition for gethostbyname()557 if ( $ip === $host ) { // Error condition for gethostbyname() 545 558 $ip = false; 559 } 546 560 } 547 561 if ( $ip ) { … … 563 577 * @param string $url URL of the requested host. 564 578 */ 565 if ( ! apply_filters( 'http_request_host_is_external', false, $host, $url ) ) 579 if ( ! apply_filters( 'http_request_host_is_external', false, $host, $url ) ) { 566 580 return false; 581 } 567 582 } 568 583 } 569 584 } 570 585 571 if ( empty( $parsed_url['port'] ) ) 586 if ( empty( $parsed_url['port'] ) ) { 572 587 return $url; 588 } 573 589 574 590 $port = $parsed_url['port']; 575 if ( 80 === $port || 443 === $port || 8080 === $port ) 591 if ( 80 === $port || 443 === $port || 8080 === $port ) { 576 592 return $url; 577 578 if ( $parsed_home && $same_host && isset( $parsed_home['port'] ) && $parsed_home['port'] === $port ) 593 } 594 595 if ( $parsed_home && $same_host && isset( $parsed_home['port'] ) && $parsed_home['port'] === $port ) { 579 596 return $url; 597 } 580 598 581 599 return false; … … 594 612 */ 595 613 function allowed_http_request_hosts( $is_external, $host ) { 596 if ( ! $is_external && wp_validate_redirect( 'http://' . $host ) ) 614 if ( ! $is_external && wp_validate_redirect( 'http://' . $host ) ) { 597 615 $is_external = true; 616 } 598 617 return $is_external; 599 618 } … … 616 635 global $wpdb; 617 636 static $queried = array(); 618 if ( $is_external ) 637 if ( $is_external ) { 619 638 return $is_external; 620 if ( $host === get_network()->domain ) 639 } 640 if ( $host === get_network()->domain ) { 621 641 return true; 622 if ( isset( $queried[ $host ] ) ) 642 } 643 if ( isset( $queried[ $host ] ) ) { 623 644 return $queried[ $host ]; 645 } 624 646 $queried[ $host ] = (bool) $wpdb->get_var( $wpdb->prepare( "SELECT domain FROM $wpdb->blogs WHERE domain = %s LIMIT 1", $host ) ); 625 647 return $queried[ $host ]; … … 657 679 function wp_parse_url( $url, $component = -1 ) { 658 680 $to_unset = array(); 659 $url = strval( $url );681 $url = strval( $url ); 660 682 661 683 if ( '//' === substr( $url, 0, 2 ) ) { 662 684 $to_unset[] = 'scheme'; 663 $url = 'placeholder:' . $url;685 $url = 'placeholder:' . $url; 664 686 } elseif ( '/' === substr( $url, 0, 1 ) ) { 665 687 $to_unset[] = 'scheme'; 666 688 $to_unset[] = 'host'; 667 $url = 'placeholder://placeholder' . $url;689 $url = 'placeholder://placeholder' . $url; 668 690 } 669 691
Note: See TracChangeset
for help on using the changeset viewer.