Преглед изворни кода

Merge pull request #348 from phzfi/master

Fixed bug - do not allow invalid hostname with double dots i.e. zend..com
Frank Brückner пре 11 година
родитељ
комит
6193b1d385
2 измењених фајлова са 11 додато и 0 уклоњено
  1. 6 0
      library/Zend/Validate/Hostname.php
  2. 5 0
      tests/Zend/Uri/HttpTest.php

+ 6 - 0
library/Zend/Validate/Hostname.php

@@ -1226,6 +1226,12 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
                     // Check each hostname part
                     $check = 0;
                     foreach ($domainParts as $domainPart) {
+                        // If some domain part is empty (i.e. zend..com), it's invalid
+                        if (empty($domainPart)) {
+                            $this->_error(self::INVALID_HOSTNAME);
+                            return false;
+                        }
+
                         // Decode Punycode domainnames to IDN
                         if (strpos($domainPart, 'xn--') === 0) {
                             $domainPart = $this->decodePunycode(substr($domainPart, 4));

+ 5 - 0
tests/Zend/Uri/HttpTest.php

@@ -159,6 +159,11 @@ class Zend_Uri_HttpTest extends PHPUnit_Framework_TestCase
         $this->_testInvalidUri('http://andi:pass%word@www.zend.com');
     }
 
+    public function testMissingDomainParts()
+    {
+        $this->_testInvalidUri('https://www.zend..com');
+    }
+
     public function testHostAsIP()
     {
         $this->_testValidUri('http://127.0.0.1');