]> scripts.mit.edu Git - autoinstallsdev/wordpress.git/blobdiff - wp-includes/http.php
WordPress 4.0.1
[autoinstallsdev/wordpress.git] / wp-includes / http.php
index 3a5f4ada909b58ef33293d53951879f6e575b895..838ed1ffadb88746d2b8b09e204a5f6f09bfbee1 100644 (file)
@@ -444,8 +444,9 @@ function send_origin_headers() {
  * @return mixed URL or false on failure.
  */
 function wp_http_validate_url( $url ) {
+       $original_url = $url;
        $url = wp_kses_bad_protocol( $url, array( 'http', 'https' ) );
-       if ( ! $url )
+       if ( ! $url || strtolower( $url ) !== strtolower( $original_url ) )
                return false;
 
        $parsed_url = @parse_url( $url );
@@ -455,7 +456,7 @@ function wp_http_validate_url( $url ) {
        if ( isset( $parsed_url['user'] ) || isset( $parsed_url['pass'] ) )
                return false;
 
-       if ( false !== strpos( $parsed_url['host'], ':' ) )
+       if ( false !== strpbrk( $parsed_url['host'], ':#?[]' ) )
                return false;
 
        $parsed_home = @parse_url( get_option( 'home' ) );
@@ -473,8 +474,7 @@ function wp_http_validate_url( $url ) {
                }
                if ( $ip ) {
                        $parts = array_map( 'intval', explode( '.', $ip ) );
-                       if ( '127.0.0.1' === $ip
-                               || ( 10 === $parts[0] )
+                       if ( 127 === $parts[0] || 10 === $parts[0]
                                || ( 172 === $parts[0] && 16 <= $parts[1] && 31 >= $parts[1] )
                                || ( 192 === $parts[0] && 168 === $parts[1] )
                        ) {