Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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