Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.10.x will end 8 November 2021 (12 months).
  • Bug fixes for security issues in 3.10.x will end 9 May 2022 (18 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 310 and 401] [Versions 310 and 402] [Versions 310 and 403]

   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 (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