1 <?php 2 3 class HTMLPurifier_URIFilter_DisableExternal extends HTMLPurifier_URIFilter 4 { 5 /** 6 * @type string 7 */ 8 public $name = 'DisableExternal'; 9 10 /** 11 * @type array 12 */ 13 protected $ourHostParts = false; 14 15 /** 16 * @param HTMLPurifier_Config $config 17 * @return void 18 */ 19 public function prepare($config) 20 { 21 $our_host = $config->getDefinition('URI')->host; 22 if ($our_host !== null) { 23 $this->ourHostParts = array_reverse(explode('.', $our_host)); 24 } 25 } 26 27 /** 28 * @param HTMLPurifier_URI $uri Reference 29 * @param HTMLPurifier_Config $config 30 * @param HTMLPurifier_Context $context 31 * @return bool 32 */ 33 public function filter(&$uri, $config, $context) 34 { 35 if (is_null($uri->host)) { 36 return true; 37 } 38 if ($this->ourHostParts === false) { 39 return false; 40 } 41 $host_parts = array_reverse(explode('.', $uri->host)); 42 foreach ($this->ourHostParts as $i => $x) { 43 if (!isset($host_parts[$i])) { 44 return false; 45 } 46 if ($host_parts[$i] != $this->ourHostParts[$i]) { 47 return false; 48 } 49 } 50 return true; 51 } 52 } 53 54 // vim: et sw=4 sts=4
title
Description
Body
title
Description
Body
title
Description
Body
title
Body