Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401]

   1  <?php
   2  
   3  // It's not clear to me whether or not Punycode means that hostnames
   4  // do not have canonical forms anymore. As far as I can tell, it's
   5  // not a problem (punycoding should be identity when no Unicode
   6  // points are involved), but I'm not 100% sure
   7  class HTMLPurifier_URIFilter_HostBlacklist extends HTMLPurifier_URIFilter
   8  {
   9      /**
  10       * @type string
  11       */
  12      public $name = 'HostBlacklist';
  13  
  14      /**
  15       * @type array
  16       */
  17      protected $blacklist = array();
  18  
  19      /**
  20       * @param HTMLPurifier_Config $config
  21       * @return bool
  22       */
  23      public function prepare($config)
  24      {
  25          $this->blacklist = $config->get('URI.HostBlacklist');
  26          return true;
  27      }
  28  
  29      /**
  30       * @param HTMLPurifier_URI $uri
  31       * @param HTMLPurifier_Config $config
  32       * @param HTMLPurifier_Context $context
  33       * @return bool
  34       */
  35      public function filter(&$uri, $config, $context)
  36      {
  37          foreach ($this->blacklist as $blacklisted_host_fragment) {
  38              if ($uri->host !== null && strpos($uri->host, $blacklisted_host_fragment) !== false) {
  39                  return false;
  40              }
  41          }
  42          return true;
  43      }
  44  }
  45  
  46  // vim: et sw=4 sts=4